gpt4 book ai didi

java - SortedSet.stream() 上的 findFirst()

转载 作者:行者123 更新时间:2023-12-05 08:33:13 25 4
gpt4 key购买 nike

SortedSet 的 java 8 API 文档仅声明 stream() 继承自 java.util.Collection(参见 https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html ).这意味着流是顺序的,但可能没有顺序。

那么确保 sortedSet.stream().filter(...).findFirst() 与经典 for( ... ) 循环返回第一个匹配元素?还是已经是这种情况,只是不能保证是 API?

(findFirst() api doc: 如果流没有遇到顺序,则可以返回任何元素。)

Stream.sorted() 应该可以解决问题,但这会增加对已在原始集合中排序的元素进行排序的开销。

最佳答案

SortedSet 有定义的遇到顺序,findFirst() 保证返回遇到顺序中的第一个元素(如果流有一个元素)。所以规范已经告诉你你想要什么——你不需要做任何特别的事情。

顺便说一句,sortedSet.stream().sorted() 将得到优化(因为 SpliteratorsortedSet.stream() 返回)将具有 SORTED 特性),所以这样做实际上不会产生排序成本——但您仍然不需要这样做。

关于java - SortedSet.stream() 上的 findFirst(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42668989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com