Package org.miaixz.bus.core.xyz
Class CollectorKit
java.lang.Object
org.miaixz.bus.core.xyz.CollectorKit
可变的汇聚操作
Collector 相关工具封装- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Set<Collector.Characteristics> 说明已包含IDENTITY_FINISH特征 为 Characteristics.IDENTITY_FINISH 的缩写static final Set<Collector.Characteristics> 说明不包含IDENTITY_FINISH特征 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription用于Stream<Entry>转 Map 的情况static <T,A, R> Collector <T, ?, R> 过滤groupingBy(Function<? super T, ? extends K> classifier) 提供对null值友好的groupingBy操作的Collector实现groupingBy(Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射static <T,K, R, C extends Collection<R>>
Collector<T, ?, Map<K, C>> groupingBy(Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper, Supplier<C> valueCollFactory) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射static <T,K, R, C extends Collection<R>, M extends Map<K, C>>
Collector<T, ?, M> groupingBy(Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper, Supplier<C> valueCollFactory, Supplier<M> mapFactory) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射groupingBy(Function<? super T, ? extends K> classifier, Supplier<M> mapFactory, Collector<? super T, A, D> downstream) 提供对null值友好的groupingBy操作的Collector实现,可指定map类型groupingBy(Function<? super T, ? extends K> classifier, Collector<? super T, A, D> downstream) 提供对null值友好的groupingBy操作的Collector实现joining(CharSequence delimiter) 提供任意对象的Join操作的Collector实现,对象默认调用toString方法joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix, Function<T, ? extends CharSequence> toStringFunc) 提供任意对象的Join操作的Collector实现joining(CharSequence delimiter, Function<T, ? extends CharSequence> toStringFunc) 提供任意对象的Join操作的Collector实现static <K,V, M extends Map<K, V>>
BinaryOperator<M> mapMerger(BinaryOperator<V> mergeFunction) 用户合并map的BinaryOperator,传入合并前需要对value进行的操作聚合这种数据类型:Collection<Map<K,V>> => Map<K,List<V>>其中key相同的value,会累加到List中reduceListMap(Supplier<R> mapSupplier) 聚合这种数据类型:Collection<Map<K,V>> => Map<K,List<V>>其中key相同的value,会累加到List中static <T> Collector<T, ?, EasyStream<T>> 将流转为EasyStreamstatic <T,K> Collector <T, List<T>, EntryStream<K, T>> toEntryStream(Function<? super T, ? extends K> keyMapper) 将流转为EntryStreamstatic <T,K, V> Collector <T, List<T>, EntryStream<K, V>> toEntryStream(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends V> valueMapper) 将流转为EntryStream对null友好的 toMap 操作的Collector实现,默认使用HashMap对null友好的 toMap 操作的Collector实现,默认使用HashMaptoMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction) 对null友好的 toMap 操作的Collector实现,默认使用HashMaptoMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier) 对null友好的 toMap 操作的Collector实现收集元素,将其转为ArrayList集合后,再对该集合进行转换,并最终返回转换后的结果。 返回的收集器的效果等同于:static <T,R, C extends Collection<T>>
Collector<T, C, R> 收集元素,将其转为指定Collection集合后,再对该集合进行转换,并最终返回转换后的结果。 返回的收集器的效果等同于:
-
Field Details
-
CH_ID
说明已包含IDENTITY_FINISH特征 为 Characteristics.IDENTITY_FINISH 的缩写 -
CH_NOID
说明不包含IDENTITY_FINISH特征
-
-
Constructor Details
-
CollectorKit
public CollectorKit()
-
-
Method Details
-
joining
提供任意对象的Join操作的Collector实现,对象默认调用toString方法- Type Parameters:
T- 对象类型- Parameters:
delimiter- 分隔符- Returns:
Collector
-
joining
public static <T> Collector<T,?, joiningString> (CharSequence delimiter, Function<T, ? extends CharSequence> toStringFunc) 提供任意对象的Join操作的Collector实现- Type Parameters:
T- 对象类型- Parameters:
delimiter- 分隔符toStringFunc- 自定义指定对象转换为字符串的方法- Returns:
Collector
-
joining
public static <T> Collector<T,?, joiningString> (CharSequence delimiter, CharSequence prefix, CharSequence suffix, Function<T, ? extends CharSequence> toStringFunc) 提供任意对象的Join操作的Collector实现- Type Parameters:
T- 对象类型- Parameters:
delimiter- 分隔符prefix- 前缀suffix- 后缀toStringFunc- 自定义指定对象转换为字符串的方法- Returns:
Collector
-
groupingBy
public static <T,K, Collector<T,D, A, M extends Map<K, D>> ?, groupingByM> (Function<? super T, ? extends K> classifier, Supplier<M> mapFactory, Collector<? super T, A, D> downstream) 提供对null值友好的groupingBy操作的Collector实现,可指定map类型- Type Parameters:
T- 实体类型K- 实体中的分组依据对应类型,也是Map中key的类型D- 下游操作对应返回类型,也是Map中value的类型A- 下游操作在进行中间操作时对应类型M- 最后返回结果Map类型- Parameters:
classifier- 分组依据mapFactory- 提供的mapdownstream- 下游操作- Returns:
Collector
-
groupingBy
public static <T,K, Collector<T,A, D> ?, groupingByMap<K, D>> (Function<? super T, ? extends K> classifier, Collector<? super T, A, D> downstream) 提供对null值友好的groupingBy操作的Collector实现- Type Parameters:
T- 实体类型K- 实体中的分组依据对应类型,也是Map中key的类型A- 下游操作在进行中间操作时对应类型D- 下游操作对应返回类型,也是Map中value的类型- Parameters:
classifier- 分组依据downstream- 下游操作- Returns:
Collector
-
groupingBy
public static <T,K> Collector<T,?, groupingByMap<K, List<T>>> (Function<? super T, ? extends K> classifier) 提供对null值友好的groupingBy操作的Collector实现- Type Parameters:
T- 实体类型K- 实体中的分组依据对应类型,也是Map中key的类型- Parameters:
classifier- 分组依据- Returns:
Collector
-
groupingBy
public static <T,K, Collector<T,R, C extends Collection<R>, M extends Map<K, C>> ?, groupingByM> (Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper, Supplier<C> valueCollFactory, Supplier<M> mapFactory) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射- Type Parameters:
T- 元素类型K- 键类型R- 值类型C- 值集合类型M- 返回的Map集合类型- Parameters:
classifier- 分组依据valueMapper- 值映射方法valueCollFactory- 值集合的工厂方法mapFactory- Map集合的工厂方法- Returns:
Collector
-
groupingBy
public static <T,K, Collector<T,R, C extends Collection<R>> ?, groupingByMap<K, C>> (Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper, Supplier<C> valueCollFactory) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射- Type Parameters:
T- 元素类型K- 键类型R- 值类型C- 值集合类型- Parameters:
classifier- 分组依据valueMapper- 值映射方法valueCollFactory- 值集合的工厂方法- Returns:
Collector
-
groupingBy
public static <T,K, Collector<T,R> ?, groupingByMap<K, List<R>>> (Function<? super T, ? extends K> classifier, Function<? super T, ? extends R> valueMapper) 提供对null值友好的groupingBy操作的Collector实现, 对集合分组,然后对分组后的值集合进行映射- Type Parameters:
T- 元素类型K- 键类型R- 值类型- Parameters:
classifier- 分组依据valueMapper- 值映射方法- Returns:
Collector
-
toMap
public static <T,K, Collector<T,U> ?, toMapMap<K, U>> (Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper) 对null友好的 toMap 操作的Collector实现,默认使用HashMap- Type Parameters:
T- 实体类型K- map中key的类型U- map中value的类型- Parameters:
keyMapper- 指定map中的keyvalueMapper- 指定map中的value- Returns:
- 对null友好的 toMap 操作的
Collector实现
-
toMap
对null友好的 toMap 操作的Collector实现,默认使用HashMap- Type Parameters:
T- 实体类型K- map中key的类型- Parameters:
keyMapper- 指定map中的key- Returns:
- 对null友好的 toMap 操作的
Collector实现
-
toMap
public static <T,K, Collector<T,U> ?, toMapMap<K, U>> (Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction) 对null友好的 toMap 操作的Collector实现,默认使用HashMap- Type Parameters:
T- 实体类型K- map中key的类型U- map中value的类型- Parameters:
keyMapper- 指定map中的keyvalueMapper- 指定map中的valuemergeFunction- 合并前对value进行的操作- Returns:
- 对null友好的 toMap 操作的
Collector实现
-
toMap
public static <T,K, Collector<T,U, M extends Map<K, U>> ?, toMapM> (Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier) 对null友好的 toMap 操作的Collector实现- Type Parameters:
T- 实体类型K- map中key的类型U- map中value的类型M- map的类型- Parameters:
keyMapper- 指定map中的keyvalueMapper- 指定map中的valuemergeFunction- 合并前对value进行的操作mapSupplier- 最终需要的map类型- Returns:
- 对null友好的 toMap 操作的
Collector实现
-
mapMerger
public static <K,V, BinaryOperator<M> mapMergerM extends Map<K, V>> (BinaryOperator<V> mergeFunction) 用户合并map的BinaryOperator,传入合并前需要对value进行的操作- Type Parameters:
K- key的类型V- value的类型M- map- Parameters:
mergeFunction- 合并前需要对value进行的操作- Returns:
- 用户合并map的BinaryOperator
-
reduceListMap
聚合这种数据类型:Collection<Map<K,V>> => Map<K,List<V>>其中key相同的value,会累加到List中- Type Parameters:
K- key的类型V- value的类型- Returns:
- 聚合后的map
-
reduceListMap
public static <K,V, Collector<Map<K,R extends Map<K, List<V>>> V>, reduceListMap?, R> (Supplier<R> mapSupplier) 聚合这种数据类型:Collection<Map<K,V>> => Map<K,List<V>>其中key相同的value,会累加到List中- Type Parameters:
K- key的类型V- value的类型R- 返回值的类型- Parameters:
mapSupplier- 可自定义map的类型如concurrentHashMap等- Returns:
- 聚合后的map
-
toEntryStream
public static <T,K> Collector<T,List<T>, toEntryStreamEntryStream<K, T>> (Function<? super T, ? extends K> keyMapper) 将流转为EntryStream- Type Parameters:
T- 输入元素类型K- 元素的键类型- Parameters:
keyMapper- 键的映射方法- Returns:
- 收集器
-
toEntryStream
public static <T,K, Collector<T,V> List<T>, toEntryStreamEntryStream<K, V>> (Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends V> valueMapper) 将流转为EntryStream- Type Parameters:
T- 输入元素类型K- 元素的键类型V- 元素的值类型- Parameters:
keyMapper- 键的映射方法valueMapper- 值的映射方法- Returns:
- 收集器
-
toEasyStream
将流转为EasyStream- Type Parameters:
T- 输入元素类型- Returns:
- 收集器
-
transform
public static <T,R, Collector<T,C extends Collection<T>> C, transformR> (Supplier<C> collFactory, Function<C, R> mapper) 收集元素,将其转为指定Collection集合后,再对该集合进行转换,并最终返回转换后的结果。 返回的收集器的效果等同于:Collection<T> coll = Stream.of(a, b, c, d) .collect(Collectors.toColl(collFactory)); R result = mapper.apply(coll);- Type Parameters:
T- 输入元素类型R- 返回值类型C- 中间收集输入元素的集合类型- Parameters:
collFactory- 中间收集输入元素的集合的创建方法mapper- 最终将元素集合映射为返回值的方法- Returns:
- 收集器
-
transform
收集元素,将其转为ArrayList集合后,再对该集合进行转换,并最终返回转换后的结果。 返回的收集器的效果等同于:List<T> coll = Stream.of(a, b, c, d) .collect(Collectors.toList()); R result = mapper.apply(coll);- Type Parameters:
T- 输入元素类型R- 返回值类型- Parameters:
mapper- 最终将元素集合映射为返回值的方法- Returns:
- 收集器
-
entryToMap
用于Stream<Entry>转 Map 的情况- Type Parameters:
K- key类型V- value类型- Returns:
- map
-
filtering
public static <T,A, Collector<T,R> ?, filteringR> (Predicate<? super T> predicate, Collector<? super T, A, R> downstream) 过滤- Type Parameters:
T- 元素类型A- 中间类型R- 结束类型- Parameters:
predicate- 断言downstream- 下游操作- Returns:
- 一个用于过滤元素的
Collector
-