-
[Java] 스트림(Stream)의 최종 연산 - 요소의 검색 : findFirst(), findAny()Java/Stream(스트림) 2022. 7. 25. 15:48반응형
목차
스트림(Stream)의 최종 연산 - 요소의 검색 : findFirst(), findAny()
1. findFirst()
해당 스트림에서 첫 번째 요소를 참조하는 Optional 객체를 반환합니다.
예제) 해당 스트림에서 첫 번째 요소를 반환
public static void createStreamFindFirst() { List<String> strings = Arrays.asList("A1", "A2", "A3", "A4", "A5"); Optional<String> stringFirst = strings.stream() .filter(s -> s.startsWith("A")) .findFirst(); stringFirst.ifPresent(System.out::println); }
Console Output
2. findAny()
해당 스트림에서 첫 번째 요소를 참조하는 Optional 객체를 반환합니다.
findFirst()와 findAny()의 차이는 병렬 처리 시 발생합니다.
예제) 해당 스트림에서 첫 번째 요소를 반환
public static void createStreamFindAny() { List<String> strings = Arrays.asList("A1", "A2", "A3", "A4", "A5"); Optional<String> stringAny = strings.stream() .filter(s -> s.startsWith("A")) .findAny(); stringAny.ifPresent(System.out::println); }
Console Output
3. findFirst() 병렬 처리 시
병렬 처리 시에도 첫 번재 요소를 참조하는 Optional 객체를 반환합니다.
예제) 병렬 처리 시 해당 스트림에서 첫 번째 요소를 반환
public static void createStreamParallelFindFirst() { List<String> strings = Arrays.asList("A1", "A2", "A3", "A4", "A5"); Optional<String> stringAny = strings.stream() .parallel() .filter(s -> s.startsWith("A")) .findFirst(); stringAny.ifPresent(System.out::println); }
Console Output
4. findAny() 병렬 처리 시
병렬 처리 시 가장 먼저 찾은 요소를 참조하는 Optional 객체를 반환합니다.
예제) 병렬 처리 시 해당 스트림에서 첫 번째 요소를 반환
public static void createStreamParallelFindAny() { List<String> strings = Arrays.asList("A1", "A2", "A3", "A4", "A5"); Optional<String> stringAny = strings.stream() .parallel() .filter(s -> s.startsWith("A")) .findAny(); stringAny.ifPresent(System.out::println); }
Console Output
소스 코드는 Github Repository 참조하세요. - https://github.com/tychejin1218/blog/blob/main/stream/src/stream/Example07.java
반응형'Java > Stream(스트림)' 카테고리의 다른 글
[Java] 스트림(Stream)의 최종 연산 - 요소의 통계 : count(), max(), min() (0) 2022.07.25 [Java] 스트림(Stream)의 최종 연산 - 요소의 검사 : anyMatch(), allMatch(), noneMatch() (0) 2022.07.25 [Java] 스트림(Stream)의 최종 연산 - 요소의 소모 : reduce() (0) 2022.07.25 [Java] 스트림(Stream)의 최종 연산 - 요소의 출력 : forEach() (0) 2022.07.25 [Java] 스트림(Stream)의 중개 연산 - 연산 결과 확인 : peek() (0) 2022.07.14