当前位置: 首页 > 知识库问答 >
问题:

Java 8中findAny()和findFirst()的区别

颛孙英勋
2023-03-14

我对Java8中StreamAPI的Stream#findany()Stream#findfirst()并不感到困惑。

我所理解的是,两者都将返回流中的第一个匹配元素,例如,当与filter结合使用时?

那么,为什么要用两种方法来完成相同的任务呢?我是不是漏掉了什么?

共有1个答案

阎庆
2023-03-14

我所理解的是,两者都将返回流中的第一个匹配元素,例如,当与filter结合使用时?

那不是真的。根据javadoc,流#findany():

返回描述流的某些元素的可选 ;如果流为空,则返回空的可选 。此操作的行为显式不确定;可以自由选择流中的任何元素。这是为了在并行操作中实现最大的性能;

stream.findfirst()将返回一个可选的 来严格描述流的第一个元素。Stream类没有.findone()方法,所以我想您指的是.findFirst()

 类似资料:
  • 问题内容: 我对Java 8 中的 API 和一点都不感到困惑。 我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素? 那么,为什么要用两种方法完成同一任务?我想念什么吗? 问题答案: 我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素? 这不是真的。根据javadoc : 返回描述流中 某些 元素的描述; 如果流为空,则返回空。此操作的

  • 鉴于这段代码: 这部分: 可以重写为: 我从一本书的示例中提取了这段代码,并说这两种解决方案不同,但我不理解为什么。

  • 这可能是一个基本问题,但是有人能解释一下和之间的主要区别并给出一些例子吗?

  • 本文向大家介绍Java中的IntStream findAny()方法,包括了Java中的IntStream findAny()方法的使用技巧和注意事项,需要的朋友参考一下 Java中IntStream类的方法用于返回描述流中某些元素的OptionalInt;如果流为空,则返回一个空的OptionalInt。 语法如下- 在这里,OptionalInt是一个容器对象,可能包含也可能不包含int值。

  • 本文向大家介绍Java中的IntStream findFirst()方法,包括了Java中的IntStream findFirst()方法的使用技巧和注意事项,需要的朋友参考一下 Java中的方法返回一个OptionalInt,描述此流的第一个元素。如果流为空,则返回空的OptionalInt。 语法如下 在这里,OptionalInt是一个容器对象,可能包含也可能不包含int值。 要使用Java

  • 问题内容: 在对JavaDoc中findFirst说,如果流有一个邂逅的命令,那么第一个元素总是会返回,但如果流没有遭遇订单,可以返回的任何元素。 我试图证明它在没有遇到顺序的情况下如何在流中工作,但是我无法让它返回除实际第一个元素以外的任何东西。 我尝试将元素添加到中Set,该元素没有定义的遇到顺序: 每次运行时,我都会得到a第一个字符串。然后,我尝试Collections.shuffle对进行