-
[Java] 스트림(Stream)의 최종 연산 - 요소의 소모 : reduce()Java/Stream(스트림) 2022. 7. 25. 15:47반응형
목차
스트림(Stream)의 최종 연산 - 요소의 출력 : reduce()
1. reduce()
첫 번째와 두 번째 요소를 가지고 연산을 수행한 뒤, 그 결과와 세 번째 요소를 가지고 또 다시 연산을 수행합니다. 이와 같이 해당 스트림의 모든 요소를 연산하여 그 결과를 반환합니다.
예제) 해당 스트림의 전체 합
public static void createStreamReduceSum() { Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Optional<Integer> result = numbers.reduce((subtotal, element) -> subtotal + element); result.ifPresent(System.out::println); }
Console Output
초깃값을 전달하는 reduce() 메소드는 반환 타입이 Optional<T>가 아닌 T 타입입니다.
예제) 초깃값과 해당 스트림의 전체 합
public static void createStreamInitialValueReduce() { Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Integer result = numbers.reduce(10, (subtotal, element) -> subtotal + element); System.out.println(result); }
Console Output
비어있는 스트림과 reduce 연산을 할 경우 전달받은 초깃값을 그대로 반환합니다.
예제) 초깃값과 비어있는 스트림의 전체 합
public static void createStreamEmptyReduce() { Stream<Integer> numbers = Stream.empty(); Integer result = numbers.reduce(10, (subtotal, element) -> subtotal + element); System.out.println(result); }
Console Output
소스 코드는 Github Repository 참조하세요. - https://github.com/tychejin1218/blog/blob/main/stream/src/stream/Example13.java
반응형'Java > Stream(스트림)' 카테고리의 다른 글
[Java] 스트림(Stream)의 최종 연산 - 요소의 검사 : anyMatch(), allMatch(), noneMatch() (0) 2022.07.25 [Java] 스트림(Stream)의 최종 연산 - 요소의 검색 : findFirst(), findAny() (0) 2022.07.25 [Java] 스트림(Stream)의 최종 연산 - 요소의 출력 : forEach() (0) 2022.07.25 [Java] 스트림(Stream)의 중개 연산 - 연산 결과 확인 : peek() (0) 2022.07.14 [Java] 스트림(Stream)의 중개 연산 - 정렬 : sorted() (0) 2022.07.14