Stream API sum
https://bcp0109.tistory.com/299
Stream API를 이용해서 Collection의 합을 구하는 방법은 2가지가 있다.
reduce, sum 둘 중 하나를 사용하는 것인데
reduce(초기값, 연산)
초기값을 시작으로 Collection을 돌며 입력한 연산을 진행한다.
Stream.of(1, 2, 3).reduce(0, Integer::sum);
sum()
sum 메소드를 사용할 때는 IntStream, DoubleStream, LongStream과 같은 기본형(int, double, long) 특화 스트림을 사용해야 한다.
그래서 mapToInt, mapToDouble, mapToLong 메소드를 사용해서 기본형을 객체로 수정한 후 연산을 진행한다.
IntStream.range(1, 3).sum();
Stream.of(1, 2, 3).mapToInt(e -> e).sum();
@FunctionalInterface
https://bcp0109.tistory.com/313
함수형 인터페이스는 추상 메소드가 오직 하나인 인터페이스를 말한다.
추상 메소드가 하나라는 것은 default method나 static method는 여러 개 존재해도 된다는 뜻이다.
@FunctionalInterface 어노테이션을 사용하면 해당 인터페이스가 함수형 인터페이스가 맞는지 검증해준다.
어노테이션을 사용하지 않아도 상관없지만, 인터페이스 검증과 유지보수를 위해 사용하는 게 좋다.
boxed
Returns a Stream consisting of the elements of this stream, each boxed to an Integer.
IntStream을 Integer로 각각 박싱한 Stream으로 반환한다.
IntStream.range(1, 5).boxed().map(e -> e)
// 정의
public final Stream<Integer> boxed() {
return mapToObj(Integer::valueOf, 0);
}
'공부공부' 카테고리의 다른 글
공부공부-230508 (0) | 2023.05.08 |
---|---|
공부공부-230507 (0) | 2023.05.07 |
공부공부-230505 (0) | 2023.05.05 |
공부공부-230419 (0) | 2023.04.21 |
공부공부-230410 (0) | 2023.04.12 |