我试图了解 Spliterator 的功能并遇到了这两种方法estimatedSize
,getExactSizeIfKnown
我可以弄清楚是什么estimatedSize
但不确定到底是做getExactSizeIfKnown
什么的。有人可以举一个例子来解释两者之间的区别。
编辑:我尝试了以下示例,其中两者都相同。在哪些情况下它们会有所不同?
public static void main(String[] args) {
List<Integer> l = new ArrayList<>();
l.add(1);
l.add(2);
l.add(3);
Spliterator<Integer> s= (Spliterator<Integer>) l.spliterator();
Spliterator<Integer> s1=s.trySplit();
while(s.tryAdvance(n -> {System.out.print(n+" ");System.out.println("estimateSize "+s.estimateSize()+" getexactsizeifknown "+s.getExactSizeIfKnown());}));