流可以顺序处理部分流水线,然后是并行流吗?

Ale*_*sky 7 java java-8 java-stream

我有以下代码不能按我的意图工作(跳过一个随机行,而不是第一个):

Files.lines(path)
     .skip(1)
     .parallel()
     .forEach( System.out::println )
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我误解了Streams的行为.问题是:我可以先将流视为顺序流(并使用"有状态中间操作"),然后将其输入并行流中forEach吗?

JB *_*zet 1

这不是一个错误,而是一个功能。调用parallel()使整个流并行。除非进行后续调用sequential(),这会将整个流设置回顺序模式。

javaodoc说:

返回一个等效的并行流。