1. public final OptionalInt reduce(IntBinaryOperator op)
import java.util.Arrays;
import java.util.List;
import java.util.function.IntBinaryOperator;
public class ReduceExam {
public static void main(String[] args) {
List<Person> list = Arrays.asList(
new Person("hong",99),
new Person("park",82),
new Person("lee",87),
new Person("kim",77)
);
// XXXBinaryOperator - applyAsXXX
int sum = list.stream().mapToInt(Person::getScore).reduce(new IntBinaryOperator() {
@Override
public int applyAsInt(int left, int right) {
return (left + right)+300; // 객체들의 총합에 300을 더함
}
}).getAsInt();
System.out.println(sum);
}
}
람다식
int sum = list.stream().mapToInt(Person::getScore)
.reduce((left, right) -> (left + right)+300).getAsInt();
System.out.println(sum);
2. public final int reduce(int identity, IntBinaryOperator op)
import java.util.ArrayList;
import java.util.List;
public class ReduceExam {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
int sum = list.stream().mapToInt(Person::getScore)
.reduce(0,(left, right) -> (left + right) + 50 );
//반환형 : int, getAsInt()할 필요 없음
// identity : 누적 함수의 항등값
System.out.println(sum);
}
}
[Stream] Collect - groupingBy : 컬렉션 요소를 그룹핑해서 Map객체 얻기 (0) | 2020.06.18 |
---|---|
[Stream] 스트림 : collect - Collectors - toList, toCollection, 사용자 정의 수집 (0) | 2020.06.18 |
[Stream] 스트림 Optional : orElse, ifPresent (0) | 2020.06.18 |
[Stream] 스트림 - 집계 Aggregate : count(), sum(), average(), max(), min() (0) | 2020.06.18 |
[Stream] 스트림 Matching : allMatch, anyMatch, noneMatch (0) | 2020.06.18 |
댓글 영역