Open ahah525 opened 1 year ago
Collector를 매개변수로 하는 스트림의 최종연산이다.
인수로 전달되는 객체의 구현 방법대로 스트림의 요소를 수집한다.
메서드 | 반환 타입 |
---|---|
collect(Collector<T, A, R> collector) | R |
collect(Supplier |
R |
리듀싱 연산을 어떻게 구현할지를 제공하는 메서드를 정의해놓은 인터페이스다.
T
: 스트림 요소의 형식A
: 누적자(중간 결과를 누적하는 객체)의 형식R
: collect 연산의 최종 결과 형식Collector 인터페이스를 구현하는 클래스는 5개의 메서드를 오버라이딩 해야한다.
다양한 기능의 Collector 인터페이스를 구현한 클래스를 정적 팩토리 메서드로 제공하는 클래스다.
정적 팩토리 메서드
: 객체 생성을 담당하는 클래스 메서드다.(간접적으로 생성자 호출)
- 리듀싱
스트림 요소를 하나의 값으로 요약하는 기능이다.
- counting(개수), summingXXX(합계), averagingXXX(평균), maxBy(최댓값), minBy(최솟값), summarizingXXX(통계), joinig(문자열 연결), reducing(범용 리듀싱)
그룹화
스트림의 요소를 특정 기준으로 그룹화하는 기능이다.(MySQL group by 와 비슷)
분할
스트림의 요소를 지정한 조건에 대해 참,거짓 2개의 그룹으로 분할하는 기능이다.
컬렉션/배열로 변환
스트림을 컬렉션이나 배열로 반환하는 기능이다.
Collection | Collections |
---|---|
Iterable을 상속받는 인터페이스다. | Object를 상속받는 클래스다. |
Collection Framework의 최상위 인터페이스다. | Collection을 다루기 위한 static 메서드를 제공한다.(Arrays가 배열을 다루기 위한 메서드를 제공하는 것과 같음) |
Collection Framework
: 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합collect()
는 Collector
를 매개변수로 하는 스트림의 최종연산
이다.Collector
는 리듀싱 연산(Collector)을 어떻게 구현할지 제공하는 메서드를 정의해놓은 인터페이스
다.Collectors
는 다양한 기능의 Collector
를 구현한 클래스를 정적 팩토리 메서드로 제공하는 클래스
다.Collection
은 Collection Framework
의 최상위 인터페이스
이다.Collections
는 Collection
을 다루기 위한 메서드를 제공하는 클래스
다.
문제
챕터 초반부(p.197)에서
Collection, Collector, collect 를 헷갈리지 않도록 주의하자!
라고 언급하고 있다. 실제로 이번 장을 학습하면서 비슷한 용어들이 많이 사용되기 때문에 용어에 대한 정립이 꼭 필요하다고 느꼈다.collect
,Collector
,Collectors
,Collection
각 용어가 어떠한 의미로 사용되는지 정리해보자.관련 목차
참고자료