목차

1. Collector 인터페이스 분석&튜닝


Collector 인터페이스는 리듀싱 연산을 어떻게 구현할지 제공하는 메서드 집합으로 구성된다. 기존에 표준 라이브러리를 통해 제공되는 Collector로도 가능하지만 직접 커스텀한 Collector를 만들어 리듀싱 연산을 제공할수도 있다.

소수 분류 문제를 커스텀 Collector 구현으로 성능 개선을 해보자.

Collector 인터페이스 분석

public interface Collector<T, A, R> {
		Supplier<A> supplier();

    BiConsumer<A, T> accumulator();

    BinaryOperator<A> combiner();

    Function<A, R> finisher();

    Set<Characteristics> characteristics();
}

Custom Collector 구현해서 성능 개선하기

전달해준 숫자를 최대값으로 그 사이의 값 중 소수 목록과 그외 목록을 분류해서 반환해주는 기능을 만든다고 하자. 이 때 별도의 Custom Collector를 구현하지 않고, 이 기능을 구현한다면 대략 이런식으로 작성할 수 있을 것 같다.