findFirst 메서드는 비어 있지 않은 컬렉션에서 첫 번째 값을 리턴한다. 종종 이 메서드를 filter 메서드와 결합하면 유용하다. 예를 들어, 여기서는 (만약 존재한다면) 글자 Q로 시작하는 첫 번째 단어를 찾는다.
Optional<String> startsWithQ
= words.filter(s -> s.startsWith("Q")).findFirst();
첫 번째 값은 물론 어떤 일치 결과든 괜찮다면 findAny 메서드를 사용한다. 이 메서드는 스트림을 병렬화할 때 유용한데, 이 경우 조사 대상 세그먼트segment들에서 처음 일치가 발견되면 계산을 완료하기 때문이다.
Optional<String> startsWithQ
= words.parallel().filter(s -> s.startsWith(“Q”)).findAny();