티스토리 뷰
스트림 최종연산 collect
collect() : 스트림의 최종연산, 매개변수로 컬렉터를 필요
Collector : 인터페이스, 컬렉터는 이 인터페이스를 구현
Collectors : 클래스, static메서드로 미리 작성된 컬렉터를 제공
스트림을 컬렉션과 배열로 변환 : toList(), toSet(), toMap(), toCollection(), to Array()
통계 : Counting(), summingInt(), averagingInt(), maxBy(), minBy()
리듀싱 : reducing()
문자열 결합 : joining(), joining(","), joining("," , "{" , "}");
그룹화와 분할 : groupingBy(), partitioningBy()
Collector 구현하기
public interface Collector<T, A, R> {
Supplier<A> supplier();
BiConsumer<A, T> accumulator();
BinaryOperator<A> combiner();
Function<A, R> finisher();
Set<Characteristics> characteristics();
}
supplier() : 작업 결과를 저장할 공간을 제공
accumulator() : 스트림의 요소를 수집(collect)할 방법을 제공
combiner() : 두 저장공간을 병합할 방법을 제공
finisher() : 결과를 최종적으로 변환할 방법을 제공
characteristics() : 컬렉터가 수행하는 작업의 속성에 대한 정보를 제공
Characteristics.CONCURRENT : 병렬로 처리할 수 있는 작업
Characteristics.UNORDERED : 스트림의 요소의 순서가 유지될 필요가 없는 작업
Characteristics.IDENTITY_FINISH : finisher()가 항등 함수인 작업
'개발 > Java' 카테고리의 다른 글
Effective Java 3/E - 싱글턴을 만드는 방법 (0) | 2021.01.16 |
---|---|
Effective Java 3/E - 정적 팩터리 메서드 (0) | 2021.01.14 |
자바 스트림 -1 (0) | 2020.12.26 |
자바 람다식 (0) | 2020.12.19 |
자바 객체를 생성하는 3가지 방법 (0) | 2020.11.27 |