我扩展了收集器,但我的要求是我的逻辑要求收集分组(累积)要求它不能使用组合器应该是组合器中的逻辑来实现相同的。
private class XCollector implements Collector<String, TreeSet<String>, TreeSet<String>> {
XCollector(String prefix) {
this.prefix = prefix;
}
@Override
public Supplier<TreeSet<String>> supplier() {
return TreeSet<String>::new;
}
@Override
public BiConsumer<TreeSet<String>, String> accumulator() {
return (sortedSet, str) -> {
some logic
};
}
@Override
public BinaryOperator<TreeSet<String>> combiner() {
return (first, second) -> {
first.addAll(second);
return first;
};
}
@Override
public Function<TreeSet<String>, TreeSet<String>> finisher() {
return (sortedSet) -> {
System.out.println(sortedSet);
return sortedSet;
};
}
@Override
public Set<Characteristics> characteristics() {
return EnumSet.of(Characteristics.UNORDERED);
}
}