public class CollStreamUtil extends Object
| Constructor and Description |
|---|
CollStreamUtil() |
| Modifier and Type | Method and Description |
|---|---|
static Stream<List<Object>> |
cartesianProduct(List<List<Object>> sets,
int index)
笛卡尔积
参考:https://www.baeldung-cn.com/java-cartesian-product-sets |
static <E,T,U> Map<T,Map<U,E>> |
group2Map(Collection<E> collection,
Function<E,T> key1,
Function<E,U> key2)
将collection按照两个规则(比如有相同的年级id,班级id)分组成双层map
Collection<E> ---> Map<T,Map<U,E>> |
static <E,T,U> Map<T,Map<U,E>> |
group2Map(Collection<E> collection,
Function<E,T> key1,
Function<E,U> key2,
boolean isParallel)
将collection按照两个规则(比如有相同的年级id,班级id)分组成双层map
Collection<E> ---> Map<T,Map<U,E>> |
static <E,K,D> Map<K,D> |
groupBy(Collection<E> collection,
Function<E,K> key,
Collector<E,?,D> downstream)
作为所有groupingBy的公共方法,更接近于原生,灵活性更强
|
static <E,K,D> Map<K,D> |
groupBy(Collection<E> collection,
Function<E,K> key,
Collector<E,?,D> downstream,
boolean isParallel)
作为所有groupingBy的公共方法,更接近于原生,灵活性更强
|
static <E,K,U> Map<K,Map<U,List<E>>> |
groupBy2Key(Collection<E> collection,
Function<E,K> key1,
Function<E,U> key2)
将collection按照两个规则(比如有相同的年级id,班级id)分组成双层map
Collection<E> ---> Map<T,Map<U,List<E>>> |
static <E,K,U> Map<K,Map<U,List<E>>> |
groupBy2Key(Collection<E> collection,
Function<E,K> key1,
Function<E,U> key2,
boolean isParallel)
将collection按照两个规则(比如有相同的年级id,班级id)分组成双层map
Collection<E> ---> Map<T,Map<U,List<E>>> |
static <E,K> Map<K,List<E>> |
groupByKey(Collection<E> collection,
Function<E,K> key)
将collection按照规则(比如有相同的班级id)分组成map
Collection<E> -------> Map<K,List<E>> |
static <E,K> Map<K,List<E>> |
groupByKey(Collection<E> collection,
Function<E,K> key,
boolean isParallel)
将collection按照规则(比如有相同的班级id)分组成map
Collection<E> -------> Map<K,List<E>> |
static <E,K,V> Map<K,List<V>> |
groupKeyValue(Collection<E> collection,
SerFunction<E,K> key,
SerFunction<E,V> value)
将collection按照规则(比如有相同的班级id)分组成map,map中的key为班级id,value为班级名
Collection<E> -------> Map<K,List<V>> |
static <E,K,V> Map<K,List<V>> |
groupKeyValue(Collection<E> collection,
SerFunction<E,K> key,
SerFunction<E,V> value,
boolean isParallel)
将collection按照规则(比如有相同的班级id)分组成map,map中的key为班级id,value为班级名
Collection<E> -------> Map<K,List<V>> |
static <K,X,Y,V> Map<K,V> |
merge(Map<K,X> map1,
Map<K,Y> map2,
BiFunction<X,Y,V> merge)
合并两个相同key类型的map
|
static <V,K> Map<K,V> |
toIdentityMap(Collection<V> collection,
SerFunction<V,K> key)
将collection转化为类型不变的map
Collection<V> ----> Map<K,V> |
static <V,K> Map<K,V> |
toIdentityMap(Collection<V> collection,
SerFunction<V,K> key,
boolean isParallel)
将collection转化为类型不变的map
Collection<V> ----> Map<K,V> |
static <E,T> List<T> |
toList(Collection<E> collection,
Function<E,T> function)
将collection转化为List集合,但是两者的泛型不同
Collection<E> ------> List<T> |
static <E,T> List<T> |
toList(Collection<E> collection,
Function<E,T> function,
boolean isParallel)
将collection转化为List集合,但是两者的泛型不同
Collection<E> ------> List<T> |
static <E,K,V> Map<K,V> |
toMap(Collection<E> collection,
Function<E,K> key,
Function<E,V> value)
将Collection转化为map(value类型与collection的泛型不同)
Collection<E> -----> Map<K,V> |
static <E,K,V> Map<K,V> |
toMap(Collection<E> collection,
Function<E,K> key,
Function<E,V> value,
boolean isParallel) |
static <E,T> Set<T> |
toSet(Collection<E> collection,
Function<E,T> function)
将collection转化为Set集合,但是两者的泛型不同
Collection<E> ------> Set<T> |
static <E,T> Set<T> |
toSet(Collection<E> collection,
Function<E,T> function,
boolean isParallel)
将collection转化为Set集合,但是两者的泛型不同
Collection<E> ------> Set<T> |
public static <V,K> Map<K,V> toIdentityMap(Collection<V> collection, SerFunction<V,K> key)
Collection<V> ----> Map<K,V>V - collection中的泛型K - map中的key类型collection - 需要转化的集合key - V类型转化为K类型的lambda方法public static <V,K> Map<K,V> toIdentityMap(Collection<V> collection, SerFunction<V,K> key, boolean isParallel)
Collection<V> ----> Map<K,V>V - collection中的泛型K - map中的key类型collection - 需要转化的集合key - V类型转化为K类型的lambda方法isParallel - 是否并行流public static <E,K,V> Map<K,V> toMap(Collection<E> collection, Function<E,K> key, Function<E,V> value)
Collection<E> -----> Map<K,V> E - collection中的泛型K - map中的key类型V - map中的value类型collection - 需要转化的集合key - E类型转化为K类型的lambda方法value - E类型转化为V类型的lambda方法public static <E,K,V> Map<K,V> toMap(Collection<E> collection, Function<E,K> key, Function<E,V> value, boolean isParallel)
E - collection中的泛型K - map中的key类型V - map中的value类型collection - 需要转化的集合key - E类型转化为K类型的lambda方法value - E类型转化为V类型的lambda方法isParallel - 是否并行流public static <E,K> Map<K,List<E>> groupByKey(Collection<E> collection, Function<E,K> key)
Collection<E> -------> Map<K,List<E>> E - collection中的泛型K - map中的key类型collection - 需要分组的集合key - 分组的规则public static <E,K> Map<K,List<E>> groupByKey(Collection<E> collection, Function<E,K> key, boolean isParallel)
Collection<E> -------> Map<K,List<E>> E - collection中的泛型K - map中的key类型collection - 需要分组的集合key - 键分组的规则isParallel - 是否并行流public static <E,K,U> Map<K,Map<U,List<E>>> groupBy2Key(Collection<E> collection, Function<E,K> key1, Function<E,U> key2)
Collection<E> ---> Map<T,Map<U,List<E>>> E - 集合元素类型K - 第一个map中的key类型U - 第二个map中的key类型collection - 需要分组的集合key1 - 第一个分组的规则key2 - 第二个分组的规则public static <E,K,U> Map<K,Map<U,List<E>>> groupBy2Key(Collection<E> collection, Function<E,K> key1, Function<E,U> key2, boolean isParallel)
Collection<E> ---> Map<T,Map<U,List<E>>> E - 集合元素类型K - 第一个map中的key类型U - 第二个map中的key类型collection - 需要分组的集合key1 - 第一个分组的规则key2 - 第二个分组的规则isParallel - 是否并行流public static <E,T,U> Map<T,Map<U,E>> group2Map(Collection<E> collection, Function<E,T> key1, Function<E,U> key2)
Collection<E> ---> Map<T,Map<U,E>> T - 第一个map中的key类型U - 第二个map中的key类型E - collection中的泛型collection - 需要分组的集合key1 - 第一个分组的规则key2 - 第二个分组的规则public static <E,T,U> Map<T,Map<U,E>> group2Map(Collection<E> collection, Function<E,T> key1, Function<E,U> key2, boolean isParallel)
Collection<E> ---> Map<T,Map<U,E>> T - 第一个map中的key类型U - 第二个map中的key类型E - collection中的泛型collection - 需要分组的集合key1 - 第一个分组的规则key2 - 第二个分组的规则isParallel - 是否并行流public static <E,K,V> Map<K,List<V>> groupKeyValue(Collection<E> collection, SerFunction<E,K> key, SerFunction<E,V> value)
Collection<E> -------> Map<K,List<V>> E - collection中的泛型K - map中的key类型V - List中的value类型collection - 需要分组的集合key - 键分组的规则value - 值分组的规则public static <E,K,V> Map<K,List<V>> groupKeyValue(Collection<E> collection, SerFunction<E,K> key, SerFunction<E,V> value, boolean isParallel)
Collection<E> -------> Map<K,List<V>> E - collection中的泛型K - map中的key类型V - List中的value类型collection - 需要分组的集合key - 键分组的规则value - 值分组的规则isParallel - 是否并行流public static <E,K,D> Map<K,D> groupBy(Collection<E> collection, Function<E,K> key, Collector<E,?,D> downstream)
E - collection中的泛型K - map中的key类型D - 后续操作的返回值collection - 需要分组的集合key - 第一次分组时需要的keydownstream - 分组后需要进行的操作public static <E,K,D> Map<K,D> groupBy(Collection<E> collection, Function<E,K> key, Collector<E,?,D> downstream, boolean isParallel)
E - collection中的泛型K - map中的key类型D - 后续操作的返回值collection - 需要分组的集合key - 第一次分组时需要的keydownstream - 分组后需要进行的操作isParallel - 是否并行流Collectors.groupingBy(Function, Collector)public static <E,T> List<T> toList(Collection<E> collection, Function<E,T> function)
Collection<E> ------> List<T> E - collection中的泛型T - List中的泛型collection - 需要转化的集合function - collection中的泛型转化为list泛型的lambda表达式public static <E,T> List<T> toList(Collection<E> collection, Function<E,T> function, boolean isParallel)
Collection<E> ------> List<T> E - collection中的泛型T - List中的泛型collection - 需要转化的集合function - collection中的泛型转化为list泛型的lambda表达式isParallel - 是否并行流public static <E,T> Set<T> toSet(Collection<E> collection, Function<E,T> function)
Collection<E> ------> Set<T> E - collection中的泛型T - Set中的泛型collection - 需要转化的集合function - collection中的泛型转化为set泛型的lambda表达式public static <E,T> Set<T> toSet(Collection<E> collection, Function<E,T> function, boolean isParallel)
Collection<E> ------> Set<T> E - collection中的泛型T - Set中的泛型collection - 需要转化的集合function - collection中的泛型转化为set泛型的lambda表达式isParallel - 是否并行流public static <K,X,Y,V> Map<K,V> merge(Map<K,X> map1, Map<K,Y> map2, BiFunction<X,Y,V> merge)
K - map中的key类型X - 第一个 map的value类型Y - 第二个 map的value类型V - 最终map的value类型map1 - 第一个需要合并的 mapmap2 - 第二个需要合并的 mapmerge - 合并的lambda,将key value1 value2合并成最终的类型,注意value可能为空的情况Copyright © 2025. All rights reserved.