It is possible to find the first element of a
Stream that matches a condition.
For this example, we will find the first
Integer whose square is over
IntStream.iterate(1, i -> i + 1) // Generate an infinite stream 1,2,3,4... .filter(i -> (i*i) > 50000) // Filter to find elements where the square is >50000 .findFirst(); // Find the first filtered element
This expression will return an
OptionalInt with the result.
Note that with an infinite
Stream, Java will keep checking each element until it finds a result. With a finite
Stream, if Java runs out of elements but still can't find a result, it returns an empty