728x90
반응형

Stream :: reduce 사용법

reduce는 stream의 데이터를 하나의 요소로 만드는 작업을 수행

쉽게 stream의 마지막 요소를 가져오고 싶을 때도 활용할 수 있음 👉 알아보기

 

다양한 예제

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
int result = numbers
              .stream()
              .reduce(0, (subtotal, element) -> subtotal + element);
assertThat(result).isEqualTo(21);
List<String> letters = Arrays.asList("a", "b", "c", "d", "e");
String result = letters
                  .stream()
                  .reduce("", (partialString, element) -> partialString + element);
assertThat(result).isEqualTo("abcde");
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Optional<Integer> sum = numbers.reduce((x, y) -> x + y);
sum.ifPresent(s -> System.out.println("sum: " + s));	// sum: 55
// 초기값이 있는 reduce
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Integer sum = numbers.reduce(10, (total, n) -> total + n);
System.out.println("sum: " + sum);	// sum: 65
반응형
복사했습니다!