Stream.skip behavior with unordered terminal operation
I've already read this and this questions, but still doubt whether the observed behavior of Stream.skip was intended by JDK authors. Let's have simple input of numbers 1..20: List<Integer> input = IntStream.rangeClosed(1, 20).boxed().collect(Collectors.toList()); Now let's create a parallel stream, combine the unordered() with skip() in different ways and collect the result: System.out.println("skip-skip-unordered-toList: " + input.parallelStream().filter(x -> x > 0) .skip(1) .skip(1) .unordered() .collect(Collectors.toList())); System.out.println("skip-unordered-skip-toList: " + input