java流扩展收集器和禁用组合器

时间:2017-07-10 07:19:26

标签: java java-stream collectors

我扩展了收集器,但我的要求是我的逻辑要求收集分组(累积)要求它不能使用组合器应该是组合器中的逻辑来实现相同的。

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);
    }

}

0 个答案:

没有答案