[Ch6] 6.5.1 finisher 메서드

kkambbak1·2023년 4월 12일
0

https://github.com/BanditBool2/ReadingRecord/issues/31

p227 6.5.1 Collector 인터페이스의 메소드 살펴보기 중 finisher 메소드

finisher 메서드는 누적자 객체를 최종결과로 반환하면서 누적과정을 끝낼 때 호출할 함수를 반환해야한다.
이미 최종결과인 상황도 있다. 이런 때는 변환과정이 필요하지 않으므로, finisher메소드는 항등함수를 반환한다.

여기서 항등함수가 무엇이고, Function.identity()가 어떤 역할을 하는 메소드인지 궁금합니다.

또 finisher메소드는 진짜 진짜 최종 연산인건지 궁금합니다.


  • 항등함수란,

    입력값을 그대로 출력값으로 반환하는 함수입니다. 예를 들어, f(x) = x와 같은 함수가 항등함수입니다.

  • Function.identity() 메소드

    Java에서 제공하는 함수형 인터페이스 Function<T, R>의 정적 메소드로, 입력값을 그대로 출력값으로 반환하는 항등함수를 생성합니다. 즉, Function.identity()는 f(x) = x와 같은 함수를 반환하는 것입니다.

  • finisher 메소드

    Collector의 최종결과를 반환하기 전에 호출되는 함수이며, 누적자 객체를 최종결과로 변환해주는 역할을 합니다. 만약 최종결과가 이미 존재한다면, 누적과정이 필요하지 않으므로 항등함수를 반환하여 변환과정을 생략할 수 있습니다.

따라서, finisher 메소드는 진짜 진짜 최종 연산이며, 최종결과를 반환하기 전에 호출되는 마지막 함수입니다.

profile
윤성

0개의 댓글