Package org.miaixz.bus.core.xyz
Class MapKit
java.lang.Object
org.miaixz.bus.core.center.map.MapGets
org.miaixz.bus.core.xyz.MapKit
Map相关工具类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <K,V> MapBuilder <K, V> builder()创建链接调用mapstatic <K,V> MapBuilder <K, V> 创建链接调用mapstatic <K,V> MapBuilder <K, V> builder(K k, V v) 创建链接调用mapstatic void清除一个或多个Map集合内的元素,每个Map调用clear()方法static <K,V> V computeIfAbsentForJdk8(Map<K, V> map, K key, Function<? super K, ? extends V> mappingFunction) 如果 data 对应的 value 不存在,则使用获取 mappingFunction 重新计算后的值,并保存为该 data 的 value,否则返回 value。 解决使用ConcurrentHashMap.computeIfAbsent导致的死循环问题 A temporary workaround for Java 8 specific performance issue JDK-8161372 .static <K,V> Map <K, V> static <K,V> Map <K, V> static MapProxycreateProxy(Map<?, ?> map) 创建代理MapMapProxy对Map做一次包装,提供各种getXXX方法static <T extends Map<K,V>, K, V>
TdefaultIfEmpty(T map, T defaultMap) 如果给定Map为空,返回默认Mapstatic <K,V> Map <K, V> edit(Map<K, V> map, UnaryOperator<Map.Entry<K, V>> editor) 编辑Map 编辑过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能:static <K,V> Map <K, V> empty()返回一个空Mapstatic <K,V, T extends Map<K, V>>
T根据传入的Map类型不同,返回对应类型的空Map,支持类型包括:static <K,V> Map <K, V> emptyIfNull(Map<K, V> set) 如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptyMap()static <K,V> Map.Entry <K, V> entry(K key, V value) 将键和值转换为AbstractMap.SimpleImmutableEntry返回的Entry不可变static <K,V> Map.Entry <K, V> entry(K key, V value, boolean isImmutable) static <K,V> Map <K, V> 过滤 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Filter实现可以实现以下功能:static <K,V> Map <K, V> 过滤Map保留指定键值对,如果键不存在跳过static <K,V> Map.Entry <K, V> firstMatch(Map<K, V> map, Predicate<Map.Entry<K, V>> predicate) 遍历Map,返回第一个匹配的entry值static <K,V> V firstMatchValue(Map<K, V> map, Predicate<Map.Entry<K, V>> predicate) 遍历Map,返回第一个匹配的value值static <K,V> Map <K, V> 获取Map的部分key生成新的Map根据给定的entry列表,根据entry的key进行分组;static <K,V> Map <V, K> Map的键和值互换 互换键值对不检查值是否有重复,如果有则后加入的元素替换先加入的元素 值的顺序在HashMap中不确定,所以谁覆盖谁也不确定,在有序的Map中按照先后顺序覆盖,保留最后的值static booleanMap是否为空static booleanisNotEmpty(Map<?, ?> map) Map是否为非空static <K,V> String join(Map<K, V> map, String separator, String keyValueSeparator, boolean isIgnoreNull, String... otherParams) 将map转成字符串static <K,V> String 将map转成字符串static <K,V> String join(Map<K, V> map, String separator, String keyValueSeparator, Predicate<Map.Entry<K, V>> predicate, String... otherParams) 将map转成字符串static <K,V> String joinIgnoreNull(Map<K, V> map, String separator, String keyValueSeparator, String... otherParams) 将map转成字符串,忽略null的键和值static <K,V, R> Map <K, R> map(Map<K, V> map, BiFunction<K, V, R> biFunction) 通过biFunction自定义一个规则,此规则将原Map中的元素转换成新的元素,生成新的Map返回 变更过程通过传入的BiFunction实现来返回一个值可以为不同类型的Mapstatic <K,V> HashMap <K, V> 新建一个HashMapstatic <K,V> HashMap <K, V> newHashMap(boolean isLinked) 新建一个HashMapstatic <K,V> HashMap <K, V> newHashMap(int size) 新建一个HashMapstatic <K,V> HashMap <K, V> newHashMap(int size, boolean isLinked) 新建一个HashMapstatic <K,V> Map <K, V> newIdentityMap(int size) 创建键不重复Mapstatic <K,V> ConcurrentHashMap <K, V> 新建一个初始容量为Normal._16的SafeConcurrentHashMapstatic <K,V> ConcurrentHashMap <K, V> newSafeConcurrentHashMap(int size) static <K,V> ConcurrentHashMap <K, V> newSafeConcurrentHashMap(Map<K, V> map) 传入一个Map将其转化为SafeConcurrentHashMap类型static <K,V> TreeMap <K, V> newTreeMap(Comparator<? super K> comparator) 新建TreeMap,Key有序的Mapstatic <K,V> TreeMap <K, V> newTreeMap(Map<K, V> map, Comparator<? super K> comparator) 新建TreeMap,Key有序的Map将数组转换为Map(HashMap),支持数组元素类型为:static <K,V> HashMap <K, V> of(K key, V value) 将单一键值对转换为Mapstatic <K,V> HashMap <K, V> of(K key, V value, boolean isOrder) 将单一键值对转换为Mapstatic <K,V> HashMap <K, V> 将Entry集合转换为HashMapstatic <K,V> HashMap <K, V> 将Entry集合转换为HashMapstatic <K,V> Map <K, V> 根据给定的Pair数组创建Map对象static <K,V> Map <K, V> 根据给定的键值对数组创建HashMap对象,传入参数必须为key,value,data,value...将一个Map按照固定大小拆分成多个子Mapstatic <T,K, V> Map <K, V> putAll(Map<K, V> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中static <K,V> Map <K, V> 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中static <T,K, V> Map <K, V> putAll(Map<K, V> resultMap, Iterator<T> iterator, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中static <K,V> Map <K, V> 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中static <K,V, T extends Map<K, V>>
TremoveAny(T map, K... keys) 去掉Map中指定key的键值对,修改原Mapstatic <K,V> Map <K, V> removeByValue(Map<K, V> map, V value) 去除Map中值为指定值的键值对 注意:此方法在传入的Map上直接修改。static <K,V> Map <K, V> 去除Map中值为null的键值对 注意:此方法在传入的Map上直接修改。static <K,V> Map <K, V> removeNullValue(Map<K, V> map) 去除Map中值为null的键值对 注意:此方法在传入的Map上直接修改。static <K,V> Map <K, V> 重命名键 实现方式为移除然后重新put,当旧的key不存在直接返回 当新的key存在,抛出IllegalArgumentException异常static <T> Map<T, T> Map的键和值互换 互换键值对不检查值是否有重复,如果有则后加入的元素替换先加入的元素 值的顺序在HashMap中不确定,所以谁覆盖谁也不确定,在有序的Map中按照先后顺序覆盖,保留最后的值static <K,V> TreeMap <K, V> 排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序)static <K,V> TreeMap <K, V> sort(Map<K, V> map, Comparator<? super K> comparator) 排序已有Map,Key有序的Mapstatic <K,V extends Comparable<? super V>>
Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) 按照值排序,可选是否倒序static StringsortJoin(Map<?, ?> params, String separator, String keyValueSeparator, boolean isIgnoreNull, String... otherParams) 根据参数排序后拼接为字符串,常用于签名static <K,V> Map <K, V> toCamelCaseMap(Map<K, V> map) 将已知Map转换为key为驼峰风格的Map 如果KEY为非String类型,保留原值行转列,合并相同的键,值合并为列表 将Map列表中相同key的值组成列表做为Map的value 是toMapList(Map)的逆方法 比如传入数据:列转行。将Map中值列表分别按照其位置与key组成新的map。 是toListMap(Iterable)的逆方法 比如传入数据:static Object[][]toObjectArray(Map<?, ?> map) 将键值对转换为二维数组,第一维是key,第二维是valuestatic <K,V> List <V> valuesOfKeys(Map<K, V> map, Iterable<K> keys) 从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为nullstatic <K,V> List <V> valuesOfKeys(Map<K, V> map, Iterator<K> keys) 从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为nullstatic <K,V> List <V> valuesOfKeys(Map<K, V> map, K... keys) 从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为nullstatic <K,V> Map <K, V> 将对应Map转换为不可修改的Mapstatic <K,V> MapWrapper <K, V> 创建Map包装类MapWrapperMapWrapper对Map做一次包装static <K,V> Map <K, V> zero()返回一个初始大小为0的HashMap(初始为0,可加入元素)
-
Constructor Details
-
MapKit
public MapKit()
-
-
Method Details
-
isEmpty
Map是否为空- Parameters:
map- 集合- Returns:
- 是否为空
-
isNotEmpty
Map是否为非空- Parameters:
map- 集合- Returns:
- 是否为非空
-
emptyIfNull
如果提供的集合为null,返回一个不可变的默认空集合,否则返回原集合 空集合使用Collections.emptyMap()- Type Parameters:
K- 键类型V- 值类型- Parameters:
set- 提供的集合,可能为null- Returns:
- 原集合,若为null返回空集合
-
defaultIfEmpty
如果给定Map为空,返回默认Map- Type Parameters:
T- 集合类型K- 键类型V- 值类型- Parameters:
map- MapdefaultMap- 默认Map- Returns:
- 非空(empty)的原Map或默认Map
-
newHashMap
新建一个HashMap- Type Parameters:
K- Key类型V- Value类型- Returns:
- HashMap对象
-
newHashMap
新建一个HashMap- Type Parameters:
K- Key类型V- Value类型- Parameters:
size- 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + 1isLinked- Map的Key是否有序,有序返回LinkedHashMap,否则返回HashMap- Returns:
- HashMap对象
-
newHashMap
新建一个HashMap- Type Parameters:
K- Key类型V- Value类型- Parameters:
size- 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + 1- Returns:
- HashMap对象
-
newHashMap
新建一个HashMap- Type Parameters:
K- Key类型V- Value类型- Parameters:
isLinked- Map的Key是否有序,有序返回LinkedHashMap,否则返回HashMap- Returns:
- HashMap对象
-
newTreeMap
新建TreeMap,Key有序的Map- Type Parameters:
K- key的类型V- value的类型- Parameters:
comparator- Key比较器- Returns:
- TreeMap
-
newTreeMap
新建TreeMap,Key有序的Map- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Mapcomparator- Key比较器- Returns:
- TreeMap
-
newIdentityMap
创建键不重复Map- Type Parameters:
K- key的类型V- value的类型- Parameters:
size- 初始容量- Returns:
IdentityHashMap
-
newSafeConcurrentHashMap
新建一个初始容量为Normal._16的SafeConcurrentHashMap- Type Parameters:
K- key的类型V- value的类型- Returns:
SafeConcurrentHashMap
-
newSafeConcurrentHashMap
- Type Parameters:
K- key的类型V- value的类型- Parameters:
size- 初始容量,当传入的容量小于等于0时,容量为Normal._16- Returns:
SafeConcurrentHashMap
-
newSafeConcurrentHashMap
传入一个Map将其转化为SafeConcurrentHashMap类型- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- map- Returns:
SafeConcurrentHashMap
-
createMap
- Type Parameters:
K- map键类型V- map值类型- Parameters:
mapType- map类型- Returns:
Map实例
-
createMap
- Type Parameters:
K- map键类型V- map值类型- Parameters:
mapType- map类型defaultMap- 如果通过反射创建失败或提供的是抽象Map,则创建的默认Map- Returns:
Map实例
-
of
将单一键值对转换为Map- Type Parameters:
K- 键类型V- 值类型- Parameters:
key- 键value- 值- Returns:
HashMap
-
of
将单一键值对转换为Map- Type Parameters:
K- 键类型V- 值类型- Parameters:
key- 键value- 值isOrder- 是否有序- Returns:
HashMap
-
ofKvs
根据给定的键值对数组创建HashMap对象,传入参数必须为key,value,data,value...奇数参数必须为key,key最后会转换为String类型。
偶数参数必须为value,可以为任意类型。
LinkedHashMap map = MapKit.ofKvs(false, "RED", "#FF0000", "GREEN", "#00FF00", "BLUE", "#0000FF" );- Type Parameters:
K- 键类型V- 值类型- Parameters:
isLinked- 是否使用LinkedHashMapkeysAndValues- 键值对列表,必须奇数参数为key,偶数参数为value- Returns:
- LinkedHashMap
- See Also:
-
ofEntries
根据给定的Pair数组创建Map对象- Type Parameters:
K- 键类型V- 值类型- Parameters:
entries- 键值对- Returns:
- Map
- See Also:
-
ofEntries
将Entry集合转换为HashMap- Type Parameters:
K- 键类型V- 值类型- Parameters:
entryIter- entry集合- Returns:
- Map
-
ofEntries
将Entry集合转换为HashMap- Type Parameters:
K- 键类型V- 值类型- Parameters:
entryIter- entry集合- Returns:
- Map
-
of
将数组转换为Map(HashMap),支持数组元素类型为:Map.Entry 长度大于1的数组(取前两个值),如果不满足跳过此元素 Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素 Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
Map<Object, Object> colorMap = MapKit.of(new String[][] { { "RED", "#FF0000" }, { "GREEN", "#00FF00" }, { "BLUE", "#0000FF" } });参考:commons-lang
- Parameters:
array- 数组。元素类型为Map.Entry、数组、Iterable、Iterator- Returns:
HashMap
-
toListMap
行转列,合并相同的键,值合并为列表 将Map列表中相同key的值组成列表做为Map的value 是toMapList(Map)的逆方法 比如传入数据:[ {a: 1, b: 1, c: 1} {a: 2, b: 2} {a: 3, b: 3} {a: 4} ]结果是:
{ a: [1,2,3,4] b: [1,2,3,] c: [1] }- Type Parameters:
K- 键类型V- 值类型- Parameters:
mapList- Map列表- Returns:
- Map
-
toMapList
列转行。将Map中值列表分别按照其位置与key组成新的map。 是toListMap(Iterable)的逆方法 比如传入数据:{ a: [1,2,3,4] b: [1,2,3,] c: [1] }结果是:
[ {a: 1, b: 1, c: 1} {a: 2, b: 2} {a: 3, b: 3} {a: 4} ]- Type Parameters:
K- 键类型V- 值类型- Parameters:
listMap- 列表Map- Returns:
- Map列表
-
toCamelCaseMap
将已知Map转换为key为驼峰风格的Map 如果KEY为非String类型,保留原值- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- 原Map- Returns:
- 驼峰风格Map
-
toObjectArray
将键值对转换为二维数组,第一维是key,第二维是value- Parameters:
map- map- Returns:
- 数组
-
join
public static <K,V> String join(Map<K, V> map, String separator, String keyValueSeparator, String... otherParams) 将map转成字符串- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Mapseparator- entry之间的连接符keyValueSeparator- kv之间的连接符otherParams- 其它附加参数字符串(例如密钥)- Returns:
- 连接字符串
-
sortJoin
public static String sortJoin(Map<?, ?> params, String separator, String keyValueSeparator, boolean isIgnoreNull, String... otherParams) 根据参数排序后拼接为字符串,常用于签名- Parameters:
params- 参数separator- entry之间的连接符keyValueSeparator- kv之间的连接符isIgnoreNull- 是否忽略null的键和值otherParams- 其它附加参数字符串(例如密钥)- Returns:
- 签名字符串
-
joinIgnoreNull
public static <K,V> String joinIgnoreNull(Map<K, V> map, String separator, String keyValueSeparator, String... otherParams) 将map转成字符串,忽略null的键和值- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Mapseparator- entry之间的连接符keyValueSeparator- kv之间的连接符otherParams- 其它附加参数字符串(例如密钥)- Returns:
- 连接后的字符串
-
join
public static <K,V> String join(Map<K, V> map, String separator, String keyValueSeparator, boolean isIgnoreNull, String... otherParams) 将map转成字符串- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Map,为空返回otherParams拼接separator- entry之间的连接符keyValueSeparator- kv之间的连接符isIgnoreNull- 是否忽略null的键和值otherParams- 其它附加参数字符串(例如密钥)- Returns:
- 连接后的字符串,map和otherParams为空返回""
-
join
public static <K,V> String join(Map<K, V> map, String separator, String keyValueSeparator, Predicate<Map.Entry<K, V>> predicate, String... otherParams) 将map转成字符串- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Map,为空返回otherParams拼接separator- entry之间的连接符keyValueSeparator- kv之间的连接符predicate- 键值对过滤otherParams- 其它附加参数字符串(例如密钥)- Returns:
- 连接后的字符串,map和otherParams为空返回""
-
edit
编辑Map 编辑过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能:1、过滤出需要的对象,如果返回
null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象- Type Parameters:
K- Key类型V- Value类型- Parameters:
map- Mapeditor- 编辑器接口- Returns:
- 编辑后的Map
-
filter
过滤 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Filter实现可以实现以下功能:1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
- Type Parameters:
K- Key类型V- Value类型- Parameters:
map- Mappredicate- 过滤器接口,Predicate.test(Object)为true保留,null返回原Map- Returns:
- 过滤后的Map
-
map
通过biFunction自定义一个规则,此规则将原Map中的元素转换成新的元素,生成新的Map返回 变更过程通过传入的BiFunction实现来返回一个值可以为不同类型的Map- Type Parameters:
K-data的类型V-value的类型R- 新的,修改后的value的类型- Parameters:
map- 原有的mapbiFunction-lambda,参数包含data,value,返回值会作为新的value- Returns:
- 值可以为不同类型的
Map
-
filter
过滤Map保留指定键值对,如果键不存在跳过- Type Parameters:
K- Key类型V- Value类型- Parameters:
map- 原始Mapkeys- 键列表,null返回原Map- Returns:
- Map 结果,结果的Map类型与原Map保持一致
-
reverse
Map的键和值互换 互换键值对不检查值是否有重复,如果有则后加入的元素替换先加入的元素 值的顺序在HashMap中不确定,所以谁覆盖谁也不确定,在有序的Map中按照先后顺序覆盖,保留最后的值- Type Parameters:
T- 键和值类型- Parameters:
map- Map对象,键值类型必须一致- Returns:
- 互换后的Map
- See Also:
-
inverse
Map的键和值互换 互换键值对不检查值是否有重复,如果有则后加入的元素替换先加入的元素 值的顺序在HashMap中不确定,所以谁覆盖谁也不确定,在有序的Map中按照先后顺序覆盖,保留最后的值- Type Parameters:
K- 键和值类型V- 键和值类型- Parameters:
map- Map对象- Returns:
- 互换后的Map
-
sort
排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序)- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Map- Returns:
- TreeMap
- See Also:
-
sort
排序已有Map,Key有序的Map- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Map,为null返回nullcomparator- Key比较器- Returns:
- TreeMap,map为null返回null
- See Also:
-
sortByValue
public static <K,V extends Comparable<? super V>> Map<K,V> sortByValue(Map<K, V> map, boolean isDesc) 按照值排序,可选是否倒序- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- 需要对值排序的mapisDesc- 是否倒序- Returns:
- 排序后新的Map
-
createProxy
创建代理MapMapProxy对Map做一次包装,提供各种getXXX方法- Parameters:
map- 被代理的Map- Returns:
MapProxy
-
wrap
创建Map包装类MapWrapperMapWrapper对Map做一次包装- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- 被代理的Map- Returns:
MapWrapper
-
view
将对应Map转换为不可修改的Map- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Map- Returns:
- 不修改Map
-
builder
创建链接调用map- Type Parameters:
K- Key类型V- Value类型- Returns:
- map创建类
-
builder
创建链接调用map- Type Parameters:
K- Key类型V- Value类型- Parameters:
map- 实际使用的map- Returns:
- map创建类
-
builder
创建链接调用map- Type Parameters:
K- Key类型V- Value类型- Parameters:
k- datav- value- Returns:
- map创建类
-
getAny
获取Map的部分key生成新的Map- Type Parameters:
K- Key类型V- Value类型- Parameters:
map- Mapkeys- 键列表- Returns:
- 新Map,只包含指定的key
-
removeAny
去掉Map中指定key的键值对,修改原Map- Type Parameters:
K- Key类型V- Value类型T- Map类型- Parameters:
map- Mapkeys- 键列表- Returns:
- 修改后的key
-
renameKey
重命名键 实现方式为移除然后重新put,当旧的key不存在直接返回 当新的key存在,抛出IllegalArgumentException异常- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- MapoldKey- 原键newKey- 新键- Returns:
- map
- Throws:
IllegalArgumentException- 新key存在抛出此异常
-
removeNullValue
去除Map中值为null的键值对 注意:此方法在传入的Map上直接修改。- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Map- Returns:
- map
-
removeByValue
去除Map中值为指定值的键值对 注意:此方法在传入的Map上直接修改。- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Mapvalue- 给定值- Returns:
- map
-
removeIf
去除Map中值为null的键值对 注意:此方法在传入的Map上直接修改。- Type Parameters:
K- key的类型V- value的类型- Parameters:
map- Mappredicate- 移除条件,当Predicate.test(Object)为true时移除- Returns:
- map
-
empty
返回一个空Map- Type Parameters:
K- 键类型V- 值类型- Returns:
- 空Map
- See Also:
-
zero
返回一个初始大小为0的HashMap(初始为0,可加入元素)- Type Parameters:
K- 键类型V- 值类型- Returns:
- 初始大小为0的HashMap
-
empty
根据传入的Map类型不同,返回对应类型的空Map,支持类型包括:1. NavigableMap 2. SortedMap 3. Map- Type Parameters:
K- 键类型V- 值类型T- Map类型- Parameters:
mapClass- Map类型,null返回默认的Map- Returns:
- 空Map
-
clear
清除一个或多个Map集合内的元素,每个Map调用clear()方法- Parameters:
maps- 一个或多个Map
-
valuesOfKeys
从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null- Type Parameters:
K- 键类型V- 值类型- Parameters:
map-Mapkeys- 键列表- Returns:
- 值列表
-
valuesOfKeys
从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null- Type Parameters:
K- 键类型V- 值类型- Parameters:
map-Mapkeys- 键列表- Returns:
- 值列表
-
valuesOfKeys
从Map中获取指定键列表对应的值列表 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null- Type Parameters:
K- 键类型V- 值类型- Parameters:
map-Mapkeys- 键列表- Returns:
- 值列表
-
entry
将键和值转换为AbstractMap.SimpleImmutableEntry返回的Entry不可变- Type Parameters:
K- 键类型V- 值类型- Parameters:
key- 键value- 值- Returns:
AbstractMap.SimpleImmutableEntry
-
entry
- Type Parameters:
K- 键类型V- 值类型- Parameters:
key- 键value- 值isImmutable- 是否不可变Entry- Returns:
AbstractMap.SimpleEntry或者AbstractMap.SimpleImmutableEntry
-
putAll
public static <K,V> Map<K,V> putAll(Map<K, V> resultMap, Iterable<V> iterable, Function<V, K> keyMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中- Type Parameters:
K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,通过传入map对象决定结果的Map类型,如果为null,默认使用HashMapiterable- 值列表keyMapper- Map的键映射- Returns:
- HashMap
-
putAll
public static <T,K, Map<K,V> V> putAll(Map<K, V> resultMap, Iterable<T> iterable, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中- Type Parameters:
T- 列表值类型K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,通过传入map对象决定结果的Map类型iterable- 值列表keyMapper- Map的键映射valueMapper- Map的值映射- Returns:
- HashMap
-
putAll
public static <K,V> Map<K,V> putAll(Map<K, V> resultMap, Iterator<V> iterator, Function<V, K> keyMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中- Type Parameters:
K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,通过传入map对象决定结果的Map类型,如果为null,默认使用HashMapiterator- 值列表keyMapper- Map的键映射- Returns:
- HashMap
-
putAll
public static <T,K, Map<K,V> V> putAll(Map<K, V> resultMap, Iterator<T> iterator, Function<T, K> keyMapper, Function<T, V> valueMapper) 将列表按照给定的键生成器规则和值生成器规则,加入到给定的Map中- Type Parameters:
T- 列表值类型K- 键类型V- 值类型- Parameters:
resultMap- 结果Map,通过传入map对象决定结果的Map类型,如果为null,默认使用HashMapiterator- 值列表keyMapper- Map的键映射valueMapper- Map的值映射- Returns:
- HashMap
-
grouping
根据给定的entry列表,根据entry的key进行分组;- Type Parameters:
K- 键类型V- 值类型- Parameters:
entries- entry列表- Returns:
- entries
-
computeIfAbsentForJdk8
public static <K,V> V computeIfAbsentForJdk8(Map<K, V> map, K key, Function<? super K, ? extends V> mappingFunction) 如果 data 对应的 value 不存在,则使用获取 mappingFunction 重新计算后的值,并保存为该 data 的 value,否则返回 value。 解决使用ConcurrentHashMap.computeIfAbsent导致的死循环问题 A temporary workaround for Java 8 specific performance issue JDK-8161372 . This class should be removed once we drop Java 8 support.注意此方法只能用于JDK8
- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Map,一般用于线程安全的Mapkey- 键mappingFunction- 值计算函数- Returns:
- 值
- See Also:
-
partition
将一个Map按照固定大小拆分成多个子Map- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- Mapsize- 子Map的大小- Returns:
- 子Map列表
-
firstMatchValue
遍历Map,返回第一个匹配的value值- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- mappredicate- 匹配条件- Returns:
- value值
-
firstMatch
遍历Map,返回第一个匹配的entry值- Type Parameters:
K- 键类型V- 值类型- Parameters:
map- mappredicate- 匹配条件- Returns:
- entry
-