假设我有一个无限的流。
IntStream istream = IntStream.iterate(0, i -> i + 1).limit(100);
Stream<Integer> boxedStream = istream.boxed();
boxed()
方法是否保留顺序?可能是的,但我在文档中找不到它。
答案 0 :(得分:3)
实际上,每个中间操作都会默认保留订单。唯一的例外是:
unordered()
删除了排序约束。sorted()
更改订单。如果没有明确指定,您可以假设操作保持订单。即使distinct()
保持顺序,但它增加了并行流的复杂性。