Errata: OCP Oracle Certified Professional Java SE 8 Programmer II - Chapter 7 page 373
Post by:desire aheza
First sentence on page 373 says that "This code consistently outputs the first value in the serial stream, 1." where the code, the author is referring to is How is it possible for findAny to return predictable results?
on the same page too i.e. 373 the same mistake was made:
The result is that the output could be 4, 1, or really any value in the stream. You can see that with parallel streams, the results of findAny() are no longer predictable.
Somehow it feels like author is talking about findFirst();
Post by:Jeanne Boyarsky
That's correct in the book. That section is explaining that findAny() is not guaranteed to return a certain element on a parallel stream. It just happens to on a serial stream.
Whereas findFirst() loses some of the benefit of parallelism because it forces the stream to be ordered.