JAVA 8 Collectorインタフェースを略す
4696 ワード
JAVA 8 Collectorインタフェース
Collectorインタフェースは次のとおりです.
一、例一:
自分で書くtoList()の実現
二、例二:
partitioningByを搭載するよりもパフォーマンスの高いパーティション実装(質量)
10回1000000以内の検索結果:
Collectorインタフェースは次のとおりです.
public interface Collector {
Suppliersupplier();
BiConsumeraccumulator();
BinaryOperatorcombiner();
Functionfinisher();
Set characteristics();
}
の :
Tは AでありアキュムレータRでありコンビネーションである
一、例一:
自分で書くtoList()の実現
public class ToCollectionList implements Collector, List>{
@Override
// --
public Supplier> supplier() {
return ArrayList::new;
}
@Override
// --
public BiConsumer, T> accumulator() {
return List::add;
}
@Override
// --
public BinaryOperator> combiner() {
return (listA, listB) -> {
listA.addAll(listB);
return listA;
};
}
@Override
// --
public Function, List> finisher() {
return Function.identity();
}
@Override
// Characteristics, ,
public Set characteristics() {
return Collections.unmodifiableSet(EnumSet.of(Characteristics.IDENTITY_FINISH, Characteristics.CONCURRENT));
}
}
二、例二:
partitioningByを搭載するよりもパフォーマンスの高いパーティション実装(質量)
public class FuckPrime implements Collector>, Map>> {
@Override
public Supplier
10回1000000以内の検索結果:
:3015ms
Stream :4785ms