Package top.tangyh.basic.utils
Class CollHelper
java.lang.Object
top.tangyh.basic.utils.CollHelper
Map 类增强
- Since:
- 2019/07/29
- Author:
- zuihou
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> List<T>添加 多个Liststatic <T> Set<T>添加 多个Setstatic <T> Set<T>addAllListToSet(List<T>... values) 添加 多个List 并返回Setstatic <T> List<T>addAllUnique(List<T>... values) 添加 多个List 并去重static <E> List<E>asList(E... elements) static <E> Set<E>asSet(E... elements) static <K,V, M> Map<K, M> buildMap(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 将List<V>转成Map<K , M>, 若K重复,则后者覆盖前者static intcomputeListCapacity(int arraySize) 将制定的枚举集合转成 map key -> name value -> descstatic intinitialCapacity(int size) 计算map 初始容量static intinitialCapacity(int size, float loadFactor) 计算map 初始容量static <K,V> Map<V, K> 转换 Map 的 K 和 Vstatic <K,V, M> com.google.common.collect.Multimap<K, M> iterableToMultiMap(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 一个key 对应多个值的map 结构: key -> [value1, value2, ...]split(Collection<String> list, CharSequence separator) 按照分隔符切割listsplit(Collection<T> list, Function<? super T, ?> function, CharSequence separator) 按照分隔符切割liststatic <K,V, M> com.google.common.collect.ImmutableMap<K, M> uniqueIndex(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 增强 guava 的 Maps.uniqueIndex方法
-
Method Details
-
putAll
-
getMap
将制定的枚举集合转成 map key -> name value -> desc- Parameters:
list-- Returns:
-
uniqueIndex
public static <K,V, com.google.common.collect.ImmutableMap<K,M> M> uniqueIndex(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 增强 guava 的 Maps.uniqueIndex方法guava 的 Maps.uniqueIndex方法可以实现:
将List<V>转成Map<K , V>K 需要自己指定, V不能指定本方法实现了:
将
List<V>转成Map<K , M>K 需要自己指定, M需要自己指定其中K不能重复,若重复,则会报错
- Type Parameters:
K- 转换后Map的键 类型V- 转换前Iterable的迭代类型M- 转换后Map的值 类型- Parameters:
values- 需要转换的集合 可以是任何实现了 Iterable 接口的集合(如List, Set, Collection)keyFunction- 转换后Map的键的转换方式valueFunction- 转换后Map的值的转换方式- Returns:
- 唯一的map
-
buildMap
public static <K,V, Map<K,M> M> buildMap(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 将List<V>转成Map<K , M>, 若K重复,则后者覆盖前者- Type Parameters:
K- 转换后Map的键 类型V- 转换前Iterable的迭代类型M- 转换后Map的值 类型- Parameters:
values- 需要转换的集合 可以是任何实现了 Iterable 接口的集合(如List, Set, Collection)keyFunction- 转换后Map的键的转换方式valueFunction- 转换后Map的值的转换方式- Returns:
- 唯一的map
-
iterableToMultiMap
public static <K,V, com.google.common.collect.Multimap<K,M> M> iterableToMultiMap(Iterable<V> values, Function<? super V, K> keyFunction, Function<? super V, M> valueFunction) 一个key 对应多个值的map 结构: key -> [value1, value2, ...]- Type Parameters:
K- 转换后Map的键 类型V- 转换前Iterable的迭代类型M- 转换后Map的值 类型- Parameters:
values- 需要转换的集合 可以是任何实现了 Iterable 接口的集合(如List, Set, Collection)keyFunction- 转换后Map的键的转换方式valueFunction- 转换后Map的值的转换方式- Returns:
- 唯一的map
-
inverse
转换 Map 的 K 和 V- Parameters:
map- map- Returns:
- 反转的map
-
initialCapacity
public static int initialCapacity(int size, float loadFactor) 计算map 初始容量- Parameters:
size- 已知数量loadFactor- 加载因子- Returns:
- map 初始容量
-
initialCapacity
public static int initialCapacity(int size) 计算map 初始容量- Parameters:
size- 已知数量- Returns:
- map 初始容量
-
computeListCapacity
public static int computeListCapacity(int arraySize) -
split
public static <T> List<String> split(Collection<T> list, Function<? super T, ?> function, CharSequence separator) 按照分隔符切割list- Parameters:
list- 集合function- 转换器separator- 分隔符- Returns:
- 分割后的集合
-
split
按照分隔符切割list- Parameters:
list- 集合separator- 分隔符- Returns:
- 分割后的集合
-
asList
-
asSet
-
addAll
添加 多个List- Type Parameters:
T-- Parameters:
values- 集合- Returns:
-
addAllUnique
添加 多个List 并去重- Type Parameters:
T-- Parameters:
values- 集合- Returns:
-
addAll
添加 多个Set- Type Parameters:
T-- Parameters:
values- 集合- Returns:
-
addAllListToSet
添加 多个List 并返回Set- Type Parameters:
T-- Parameters:
values- 集合- Returns:
-