JavaIntermediate#streams

What is the difference between findFirst() and findAny() in streams?

findFirst() returns the first element in encounter order, deterministic for ordered streams. findAny() returns any matching element and may be faster in parallel streams since it doesn't need to preserve order.

Example
Optional<Integer> first = List.of(1,2,3).stream().filter(x -> x > 1).findFirst(); // 2
Optional<Integer> any = List.of(1,2,3).parallelStream().filter(x -> x > 1).findAny(); // 2 or 3

Related Questions

1
JavaBeginner#java8

What is the difference between Optional.of() and Optional.ofNullable()?

Open
2
JavaIntermediate#java8#lambda

What is a method reference and what are its types?

Open
3
JavaIntermediate#streams

What is the difference between Stream.reduce() with and without an identity value?

Open