有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

编写谓词练习JAVA技能

我正在练习Hyperskill上的java技能,我搞不懂这个关于组合谓词的练习

编写disjunctAll方法,该方法接受IntPredicate的列表并返回单个IntPredicate。结果谓词是所有输入谓词的析取

如果输入列表为空,那么对于任何整数值,结果谓词都应返回false(始终为false)

很重要。注意提供的方法模板。不要改变它

public static IntPredicate disjunctAll(List<IntPredicate> predicates) {

}

共 (1) 个答案

  1. # 1 楼答案

    对列表进行简单的迭代即可:

        public static IntPredicate disjunctAll(List<IntPredicate> predicates)
        {
            IntPredicate result = i -> false;
            for (IntPredicate p: predicates) {
                result = p.or(result);
            }
            return result;
        }
    
    

    或者简单地使用流减速机:

        public static IntPredicate disjunctAll(List<IntPredicate> predicates)
        {
            return predicates.stream()
                .reduce(i -> false, IntPredicate::or);
        }