【发布时间】:2016-02-26 17:57:47
【问题描述】:
假设我有一个无限流。
IntStream istream = IntStream.iterate(0, i -> i + 1).limit(100);
Stream<Integer> boxedStream = istream.boxed();
boxed() 方法是否保留顺序?可能是的,但我在文档中找不到。
【问题讨论】:
-
例如,
IntStream上的 Javadoc 说它返回stream that is consistent of the elements of this stream, each boxed to an Integer。我不希望它改变顺序。您是否看到更改的订单?如何?也许尝试使用 Stream::peek 找出答案? -
问题有点不清楚,“订单”是什么意思?一切都在那里:docs.oracle.com/javase/8/docs/api/java/util/stream/… 尽管您可能想多次阅读整个文档:)。
-
我确定确实如此,但我找不到任何文件表明它可以保证这样做。 (我会选择文档表明中间操作不会修改 Spliterator 标志,除非指定这样做,但我什至找不到任何相关信息。)
-
是的,我认为是的。 Venkat Subramaniam 在推特上给我写信说,如果没有另行说明,则不应更改订单。
标签: java java-8 java-stream