分裂器的estimateSize()到底返回什么值?

问题描述 投票:0回答:0

Spliterators 提供了estimateSize()方法。 仔细阅读了 Javadoc 后,我仍然不确定它的解释。 这些解释哪一个是正确的,如果不正确,为什么?

  1. estimateSize() 永远不会返回负值
  2. estimateSize() 仅对于空流始终返回 0
  3. estimateSize() 始终返回 1 和 Long.MAX_VALUE 之间的值(对于已知大小、估计大小或计算大小)
  4. 如果流具有无限大小或未知大小或者无法计算确切大小,则estimateSize() 始终返回 Long.MAX_VALUE。
请不要将estimateSize()与getExactSizeIfKnown()混淆。

编辑: 也许我的问题需要澄清:

a)是否有可能estimateSize()返回0但流不为空?

b)estimateSize()是否有可能返回一个更大的值 大于 0 但流为空?

java stream javadoc
© www.soinside.com 2019 - 2024. All rights reserved.