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

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

万俟承望
2023-03-14
问题内容

我对Java 8 中的 API Stream#findAny()和一点都不感到困惑。Stream#findFirst()``Stream

我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素?

那么,为什么要用两种方法完成同一任务?我想念什么吗?


问题答案:

我了解到的是,例如当与filter一起使用时,两者都会从流中返回第一个匹配的元素?

这不是真的。根据javadoc
Stream#findAny()

返回Optional<T>描述流中 某些 元素的描述; Optional<T>如果流为空,则返回空。此操作的行为明确地是不确定的。
可以自由选择流中的任何元素。 这是为了在并行操作中获得最佳性能。

while
Stream.findFirst()
严格* 返回Optional<T>描述流的第一个元素。该班没有一个方法,所以我想你的意思。
*Stream``.findOne()``.findFirst()



 类似资料:
  • 我对Java8中API的和并不感到困惑。 我所理解的是,两者都将返回流中的第一个匹配元素,例如,当与filter结合使用时? 那么,为什么要用两种方法来完成相同的任务呢?我是不是漏掉了什么?

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

  • 问题内容: 我有两个问题,可能需要一些帮助来理解它们。 和之间有什么区别?我知道这 意味着在单独的外壳中运行命令,然后将其传递给变量。有人可以帮助我理解这一点吗?如果我错了,请纠正我。 如果我们可以使用并且效果很好,那我为什么不能使用它呢?两者的执行周期有何不同? 问题答案: 语法是令牌级别的,因此美元符号的含义取决于其所在的令牌。表达式是现代代名词,代表命令替换;这意味着运行并将其输出放在此处。

  • 问题内容: 我对和感到困惑。我有两本PHP书。一个说它们是相同的,但是另一个说它们是不同的。我以为他们也一样。 他们不一样吗? 问题答案: 是按位与。请参见按位运算符。假设您这样做: 是逻辑AND。请参阅逻辑运算符。考虑一下这个真值表:

  • 问题内容: 这个问题已经在这里有了答案 : JavaScript比较中应使用哪个等于运算符(== vs ===)? (49个答案) 5个月前关闭。 和之间的区别是什么?我也看过和运算符。还有更多这样的运营商吗? 问题答案: 并且是严格的比较运算符: JavaScript具有严格和类型转换相等性比较。为了相等,要比较的对象必须具有相同的类型,并且: 当两个字符串在相同位置具有相同的字符序列,相同的长

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子: