当前位置: 首页 > 面试题库 >

Java 8 Lambda谓词链接?

高博涉
2023-03-14
问题内容

我无法编译它,甚至可以链接谓词lambda吗?

Arrays.asList("1","2","3").stream().filter( (e -> e=="1" ).or(e-> e=="2") ).count();

或唯一的方法是显式创建一个谓词,然后像这样组合:

Predicate<String> isOne= e -> e=="1";
Arrays.asList("1","2","3").stream().filter( isOne.or(e -> e=="2") ).count();

还是有更多的“功能优雅”的方式来实现同一目标?


问题答案:

可以 使用:

((Predicate<String>) e -> e.equals("1")).or(e -> e.equals("2"))

但这不是很优雅。如果要直接指定条件,则只需使用一个λ:

e -> e.equals("1") || e.equals("2")


 类似资料:
  • 谓词是指用方括号写的XPath表达式。 它指的是为某些条件限制节点集中的选定节点。 例如, 序号 序号 描述 1 选择第一个元素,它是元素的子元素。 2 选择最后一个元素,它是元素的子元素。 3 使用选择元素。 4 选择大于的元素。 示例 此示例通过迭代每个学生创建一个包含其详细信息的元素。 它计算节点的位置,然后打印学生的详细信息以及序列号。 文件:students.xml - 文件:stude

  • 谓词 Clojure 提供了很多函数来充当谓词的功能 — 测试条件是否成立。它们的返回值是 true或者false。在Clojure里面 false 以及 nil 被解释成false. true 以及任何其他值都被解释成true, 包括0。谓词函数的名字一般以问号结尾。 反射是一种获取一个对象的特性,而不是它的值的过程。比如说对象的类型。有很多谓词函数进行反射。 测试一个对象的类型的谓词包括 cl

  • Predicates是评估条件并提供true或false值的函数。 我们在数字章节的例子中看到了谓词函数。 我们看过像'even?'这样的功能 用来测试一个数字是否是偶数,或'neg?' 用于测试数字是否大于零。 所有这些函数都返回true或false值。 以下是Clojure中谓词的示例。 (ns clojure.examples.example (:gen-class)) ;; This

  • 谓词是针对某些特定条件测试其参数的函数,如果条件为假则返回nil,或者某些非零值是条件为真。 下表显示了一些最常用的谓词 - Sr.No. 谓词和描述 1 atom 它接受一个参数,如果参数是原子则返回t,否则返回nil。 2 equal 它需要两个参数,如果它们在结构上相等则返回t否则返回nil 。 3 eq 它需要两个参数,如果它们是相同的相同对象,则返回t ,共享相同的内存位置,否则返回ni

  • 问题内容: 在Numpy中,我可以生成一个布尔数组,如下所示: 是否可以将比较链接在一起?例如: 问题答案: 据我所知,你可以得到的最接近的是使用,以及: 我认为您将无法获得样式链接。

  • 本文向大家介绍谓词演算,包括了谓词演算的使用技巧和注意事项,需要的朋友参考一下 谓词演算处理谓词,谓词包含变量。 谓词 谓词是在某个特定域上定义的一个或多个变量的表达式。通过给变量赋值或量化变量,可以使带有变量的谓词成为命题。 请请看以下语句。 拉姆是学生。 现在根据谓词演算来考虑以上陈述。 这里“是学生”是谓词,Ram是主题。 让我们将“ Ram”表示为x,将“是学生”表示为谓词P,然后可以将上