gpt4 book ai didi

java - 遇到订单集合 - 最佳实践和示例

转载 作者:搜寻专家 更新时间:2023-11-01 01:20:25 24 4
gpt4 key购买 nike

Ordering

Streams may or may not have a defined encounter order. Whether or not a stream has an encounter order depends on the source and the intermediate operations. Certain stream sources (such as List or arrays) are intrinsically ordered, whereas others (such as HashSet) are not. Some intermediate operations, such as sorted(), may impose an encounter order on an otherwise unordered stream, and others may render an ordered stream unordered, such as BaseStream.unordered(). Further, some terminal operations may ignore encounter order, such as forEach().

  1. HashSet 外,是否还有其他类型不具有 encounter order 属性?
  2. 如果我对保持现有顺序或任何排序不感兴趣,显式调用 unordered 中间操作是否被认为是最佳实践将并行计算的每个流?

最佳答案

除了HashSetHashMap的 Collection View ,Stream.generate()将生成无序流。

不用说,Random 生成的流也是无序的。此外,Stream.empty() 没有报告遇到顺序,但这并没有太大的后果......

如果您知道您不需要 Stream 来维护相遇顺序,那么使用 unordered() 是一个很好的做法——即使它不会提高性能,就像大多数情况一样当前实现中的操作,它不会造成伤害,并且会记录您不关心订单。这不仅适用于并行流,一些操作,如 distinct(),即使在顺序情况下也可能受益于无序性。

在某些情况下,选择正确的终端操作,如 findAny() 而不是 findFirst() 文档,意图更简洁,也会对文档产生更高的影响性能,给定当前的实现。

关于java - 遇到订单集合 - 最佳实践和示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333593/

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