gpt4 book ai didi

java - 不可分割的分离器

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:56:23 24 4
gpt4 key购买 nike

我试图了解 Spliterator 的工作原理,以及拆分器的设计方式。我认识到 trySplit() 可能是 Spliterator 更重要的方法之一,但是当我看到一些第三方 Spliterator 实现时,有时我看到他们的拆分器无条件地为 trySplit() 返回 null。

问题:

  1. 普通迭代器和无条件返回 null 的 Spliterator 有区别吗?似乎这样的 split 者打败了 split 的意义。
  2. 当然,存在在 trySplit() 上有条件地返回 null 的拆分器的合法用例,但是是否存在无条件返回 null 的拆分器的合法用例?

最佳答案

正如您所说,虽然 Spliterator 相对于 Iterator 的主要优势在于它的 trySplit() 方法允许并行化,但还有其他显着优势:

http://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html

The Spliterator API was designed to support efficient parallel traversal in addition to sequential traversal, by supporting decomposition as well as single-element iteration. In addition, the protocol for accessing elements via a Spliterator is designed to impose smaller per-element overhead than Iterator, and to avoid the inherent race involved in having separate methods for hasNext() and next().

此外,Spliterators 可以使用 StreamSupport.stream 直接转换为 Streams使用 Java8 的流。

关于java - 不可分割的分离器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869111/

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