package com.insightfullogic.java8.exercises.chapter5;
import com.insightfullogic.java8.exercises.Exercises;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
public class GroupingBy<T, K> implements Collector<T, Map<K, List<T>>, Map<K, List<T>>> {
private final Function<? super T, ? extends K> classifier;
public GroupingBy(Function<? super T, ? extends K> classifier) {
this.classifier = classifier;
}
@Override
public Supplier<Map<K, List<T>>> supplier() {
return Exercises.replaceThisWithSolution();
}
@Override
public BiConsumer<Map<K, List<T>>, T> accumulator() {
return Exercises.replaceThisWithSolution();
}
@Override
public BinaryOperator<Map<K, List<T>>> combiner() {
return Exercises.replaceThisWithSolution();
}
@Override
public Function<Map<K, List<T>>, Map<K, List<T>>> finisher() {
return Exercises.replaceThisWithSolution();
}
@Override
public Set<Characteristics> characteristics() {
return Exercises.replaceThisWithSolution();
}
}