public class MapUtil
extends java.lang.Object
| 限定符和类型 | 字段和说明 |
|---|---|
static int |
DEFAULT_INITIAL_CAPACITY
默认初始大小
|
static float |
DEFAULT_LOAD_FACTOR
默认增长因子,当Map的size达到 容量*增长因子时,开始扩充Map
|
| 构造器和说明 |
|---|
MapUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <K,V> MapBuilder<K,V> |
builder()
创建链接调用map
|
static <K,V> MapBuilder<K,V> |
builder(K k,
V v)
创建链接调用map
|
static <K,V> MapBuilder<K,V> |
builder(java.util.Map<K,V> map)
创建链接调用map
|
static <K,V> java.util.Map<K,V> |
createMap(java.lang.Class<?> mapType)
创建Map
传入抽象Map AbstractMap和Map类将默认创建HashMap |
static MapProxy |
createProxy(java.util.Map<?,?> map)
创建代理Map
MapProxy对Map做一次包装,提供各种getXXX方法 |
static <K,V> java.util.Map<K,V> |
filter(java.util.Map<K,V> map,
Editor<java.util.Map.Entry<K,V>> editor)
过滤
过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象 |
static <K,V> java.util.Map<K,V> |
filter(java.util.Map<K,V> map,
Filter<java.util.Map.Entry<K,V>> filter)
过滤
过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象 |
static <K,V> java.util.Map<K,V> |
filter(java.util.Map<K,V> map,
K... keys)
过滤Map保留指定键值对,如果键不存在跳过
|
static <T> T |
get(java.util.Map<?,?> map,
java.lang.Object key,
java.lang.Class<T> type)
获取Map指定key的值,并转换为指定类型
|
static <K,V> java.util.Map<K,V> |
getAny(java.util.Map<K,V> map,
K... keys)
获取Map的部分key生成新的Map
|
static java.lang.Boolean |
getBool(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Bool
|
static java.lang.Character |
getChar(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Character
|
static java.util.Date |
getDate(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为
Date |
static java.lang.Double |
getDouble(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Double
|
static java.lang.Float |
getFloat(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Float
|
static java.lang.Integer |
getInt(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Integer
|
static java.lang.Long |
getLong(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Long
|
static java.lang.Short |
getShort(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为Short
|
static java.lang.String |
getStr(java.util.Map<?,?> map,
java.lang.Object key)
获取Map指定key的值,并转换为字符串
|
static <K,V> java.util.Map<V,K> |
inverse(java.util.Map<K,V> map)
已过时。
请使用
reverse(Map) 代替 |
static boolean |
isEmpty(java.util.Map<?,?> map)
Map是否为空
|
static boolean |
isNotEmpty(java.util.Map<?,?> map)
Map是否为非空
|
static <K,V> java.lang.String |
join(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator)
将map转成字符串
|
static <K,V> java.lang.String |
join(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator,
boolean isIgnoreNull)
将map转成字符串
|
static <K,V> java.lang.String |
joinIgnoreNull(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator)
将map转成字符串,忽略null的键和值
|
static <K,V> java.util.HashMap<K,V> |
newHashMap()
新建一个HashMap
|
static <K,V> java.util.HashMap<K,V> |
newHashMap(boolean isOrder)
新建一个HashMap
|
static <K,V> java.util.HashMap<K,V> |
newHashMap(int size)
新建一个HashMap
|
static <K,V> java.util.HashMap<K,V> |
newHashMap(int size,
boolean isOrder)
新建一个HashMap
|
static <K,V> java.util.TreeMap<K,V> |
newTreeMap(java.util.Comparator<? super K> comparator)
新建TreeMap,Key有序的Map
|
static <K,V> java.util.TreeMap<K,V> |
newTreeMap(java.util.Map<K,V> map,
java.util.Comparator<? super K> comparator)
新建TreeMap,Key有序的Map
|
static <K,V> java.util.HashMap<K,V> |
of(K key,
V value)
将单一键值对转换为Map
|
static <K,V> java.util.HashMap<K,V> |
of(K key,
V value,
boolean isOrder)
将单一键值对转换为Map
|
static java.util.HashMap<java.lang.Object,java.lang.Object> |
of(java.lang.Object[] array)
将数组转换为Map(HashMap),支持数组元素类型为:
Map.Entry
长度大于1的数组(取前两个值),如果不满足跳过此元素
Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素
Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
Map<Object, Object> colorMap = MapUtil.of(new String[][] {{
{"RED", "#FF0000"},
{"GREEN", "#00FF00"},
{"BLUE", "#0000FF"}});
参考:commons-lang
|
static <T> java.util.Map<T,T> |
reverse(java.util.Map<T,T> map)
Map的键和值互换
|
static <K,V> java.util.TreeMap<K,V> |
sort(java.util.Map<K,V> map)
排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序)
|
static <K,V> java.util.TreeMap<K,V> |
sort(java.util.Map<K,V> map,
java.util.Comparator<? super K> comparator)
排序已有Map,Key有序的Map
|
static <K,V> java.util.Map<K,V> |
toCamelCaseMap(java.util.Map<K,V> map)
将已知Map转换为key为驼峰风格的Map
如果KEY为非String类型,保留原值 |
static <K,V> java.util.Map<K,java.util.List<V>> |
toListMap(java.lang.Iterable<? extends java.util.Map<K,V>> mapList)
行转列,合并相同的键,值合并为列表
将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] } |
static <K,V> java.util.List<java.util.Map<K,V>> |
toMapList(java.util.Map<K,? extends java.lang.Iterable<V>> listMap)
列转行。
|
static java.lang.Object[][] |
toObjectArray(java.util.Map<?,?> map)
将键值对转换为二维数组,第一维是key,第二纬是value
|
public static final int DEFAULT_INITIAL_CAPACITY
public static final float DEFAULT_LOAD_FACTOR
public static boolean isEmpty(java.util.Map<?,?> map)
map - 集合public static boolean isNotEmpty(java.util.Map<?,?> map)
map - 集合public static <K,V> java.util.HashMap<K,V> newHashMap()
K - Key类型V - Value类型public static <K,V> java.util.HashMap<K,V> newHashMap(int size,
boolean isOrder)
K - Key类型V - Value类型size - 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75isOrder - Map的Key是否有序,有序返回 LinkedHashMap,否则返回 HashMappublic static <K,V> java.util.HashMap<K,V> newHashMap(int size)
K - Key类型V - Value类型size - 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75public static <K,V> java.util.HashMap<K,V> newHashMap(boolean isOrder)
K - Key类型V - Value类型isOrder - Map的Key是否有序,有序返回 LinkedHashMap,否则返回 HashMappublic static <K,V> java.util.TreeMap<K,V> newTreeMap(java.util.Comparator<? super K> comparator)
comparator - Key比较器public static <K,V> java.util.TreeMap<K,V> newTreeMap(java.util.Map<K,V> map,
java.util.Comparator<? super K> comparator)
map - Mapcomparator - Key比较器public static <K,V> java.util.Map<K,V> createMap(java.lang.Class<?> mapType)
AbstractMap和Map类将默认创建HashMapK - map键类型V - map值类型mapType - map类型Map实例public static <K,V> java.util.HashMap<K,V> of(K key,
V value)
K - 键类型V - 值类型key - 键value - 值HashMappublic static <K,V> java.util.HashMap<K,V> of(K key,
V value,
boolean isOrder)
K - 键类型V - 值类型key - 键value - 值isOrder - 是否有序HashMappublic static java.util.HashMap<java.lang.Object,java.lang.Object> of(java.lang.Object[] array)
Map.Entry 长度大于1的数组(取前两个值),如果不满足跳过此元素 Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素 Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
Map<Object, Object> colorMap = MapUtil.of(new String[][] {{
{"RED", "#FF0000"},
{"GREEN", "#00FF00"},
{"BLUE", "#0000FF"}});
参考:commons-langarray - 数组。元素类型为Map.Entry、数组、Iterable、IteratorHashMappublic static <K,V> java.util.Map<K,java.util.List<V>> toListMap(java.lang.Iterable<? extends java.util.Map<K,V>> mapList)
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]
}
K - 键类型V - 值类型mapList - Map列表public static <K,V> java.util.List<java.util.Map<K,V>> toMapList(java.util.Map<K,? extends java.lang.Iterable<V>> listMap)
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}
]
K - 键类型V - 值类型listMap - 列表Mappublic static <K,V> java.util.Map<K,V> toCamelCaseMap(java.util.Map<K,V> map)
map - 原Mappublic static java.lang.Object[][] toObjectArray(java.util.Map<?,?> map)
map - Map, ?> mappublic static <K,V> java.lang.String join(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator)
K - 键类型V - 值类型map - Mapseparator - entry之间的连接符keyValueSeparator - kv之间的连接符public static <K,V> java.lang.String joinIgnoreNull(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator)
K - 键类型V - 值类型map - Mapseparator - entry之间的连接符keyValueSeparator - kv之间的连接符public static <K,V> java.lang.String join(java.util.Map<K,V> map,
java.lang.String separator,
java.lang.String keyValueSeparator,
boolean isIgnoreNull)
K - 键类型V - 值类型map - Mapseparator - entry之间的连接符keyValueSeparator - kv之间的连接符isIgnoreNull - 是否忽略null的键和值public static <K,V> java.util.Map<K,V> filter(java.util.Map<K,V> map,
Editor<java.util.Map.Entry<K,V>> editor)
1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象
K - Key类型V - Value类型map - Mapeditor - 编辑器接口public static <K,V> java.util.Map<K,V> filter(java.util.Map<K,V> map,
Filter<java.util.Map.Entry<K,V>> filter)
1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象
K - Key类型V - Value类型map - Mapfilter - 编辑器接口public static <K,V> java.util.Map<K,V> filter(java.util.Map<K,V> map,
K... keys)
K - Key类型V - Value类型map - 原始Mapkeys - 键列表public static <T> java.util.Map<T,T> reverse(java.util.Map<T,T> map)
T - 键和值类型map - Map对象,键值类型必须一致@Deprecated public static <K,V> java.util.Map<V,K> inverse(java.util.Map<K,V> map)
reverse(Map) 代替K - 键类型,目标的值类型V - 值类型,目标的键类型map - 被转换的Mappublic static <K,V> java.util.TreeMap<K,V> sort(java.util.Map<K,V> map)
map - MapnewTreeMap(Map, Comparator)public static <K,V> java.util.TreeMap<K,V> sort(java.util.Map<K,V> map,
java.util.Comparator<? super K> comparator)
map - Mapcomparator - Key比较器newTreeMap(Map, Comparator)public static MapProxy createProxy(java.util.Map<?,?> map)
MapProxy对Map做一次包装,提供各种getXXX方法map - 被代理的MapMapProxypublic static <K,V> MapBuilder<K,V> builder()
K - Key类型V - Value类型public static <K,V> MapBuilder<K,V> builder(java.util.Map<K,V> map)
K - Key类型V - Value类型map - 实际使用的mappublic static <K,V> MapBuilder<K,V> builder(K k, V v)
K - Key类型V - Value类型k - keyv - valuepublic static <K,V> java.util.Map<K,V> getAny(java.util.Map<K,V> map,
K... keys)
K - Key类型V - Value类型map - Mapkeys - 键列表public static java.lang.String getStr(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Integer getInt(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Double getDouble(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Float getFloat(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Short getShort(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Boolean getBool(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Character getChar(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.lang.Long getLong(java.util.Map<?,?> map,
java.lang.Object key)
map - Mapkey - 键public static java.util.Date getDate(java.util.Map<?,?> map,
java.lang.Object key)
Datemap - Mapkey - 键public static <T> T get(java.util.Map<?,?> map,
java.lang.Object key,
java.lang.Class<T> type)
T - 目标值类型map - Mapkey - 键type - 值类型Copyright © 2018. All rights reserved.