即使他们目前的行为相同,也存在差异 - 至少在他们的文档中,正如您正确指出的那样;据我所知,将来可能会被利用。
目前,该方法在接口中定义为:parallelStream
Collection
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
作为默认方法,它可以在实现中被重写(这就是内部类实际执行的操作)。Collections
这暗示,即使默认方法返回并行流,也可能有集合覆盖此方法以返回 .这就是文档可能采用原样的原因。non-parallel Stream
同时,即使返回顺序流 - 它仍然是一个,然后您可以轻松调用它:parallelStream
Stream
parallel
Collections.some()
.parallelStream() // actually sequential
.parallel() // force it to be parallel
至少对我来说,这看起来很奇怪。
似乎文档应该以某种方式声明,在调用后,应该没有理由再次调用以强制这样做 - 因为它可能对处理无用甚至不利。parallelStream
parallel
编辑
对于阅读本文的任何人 - 也请阅读Holger的评论;它涵盖了超出我在这个答案中所说的情况。