티스토리 뷰

개발/Java

자바 스트림 -2

Beemo_ 2021. 1. 1. 23:59

스트림 최종연산 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함