public class MapUtil extends Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
MapUtil.ValueCreator<T>
Lazy创建Value值的回调类
|
| Modifier and Type | Field and Description |
|---|---|
static float |
DEFAULT_LOAD_FACTOR |
| Constructor and Description |
|---|
MapUtil() |
| Modifier and Type | Method and Description |
|---|---|
static <K,V> V |
createIfAbsentReturnLast(ConcurrentMap<K,V> map,
K key,
MapUtil.ValueCreator<? extends V> creator)
如果Key不存在则创建,返回最后存储在Map中的Value.
|
static <K,V> com.google.common.collect.MapDifference<K,V> |
difference(Map<? extends K,? extends V> left,
Map<? extends K,? extends V> right)
对两个Map进行比较,返回MapDifference,然后各种妙用.
|
static <K,V> Map<K,V> |
emptyMap()
返回一个空的结构特殊的Map,节约空间.
|
static <K,V> Map<K,V> |
emptyMapIfNull(Map<K,V> map)
如果map为null,转化为一个安全的空Map.
|
static boolean |
isEmpty(Map<?,?> map)
判断是否为空.
|
static boolean |
isNotEmpty(Map<?,?> map)
判断是否为空.
|
static <K,V> ConcurrentHashMap<K,V> |
newConcurrentHashMap()
根据等号左边的类型,构造类型正确的ConcurrentHashMap.
|
static <K,V> ConcurrentSkipListMap<K,V> |
newConcurrentSortedMap()
根据等号左边的类型,构造类型正确的ConcurrentSkipListMap.
|
static <K extends Enum<K>,V> |
newEnumMap(Class<K> type)
相比HashMap,当key是枚举类时, 性能与空间占用俱佳.
|
static <K,V> HashMap<K,V> |
newHashMap()
Deprecated.
JDK7开始已经简化
|
static <K,V> HashMap<K,V> |
newHashMap(K[] keys,
V[] values)
根据等号左边的类型, 构造类型正确的HashMap.
|
static <K,V> HashMap<K,V> |
newHashMap(K key,
V value)
根据等号左边的类型, 构造类型正确的HashMap.
|
static <K,V> HashMap<K,V> |
newHashMap(List<K> keys,
List<V> values)
根据等号左边的类型, 构造类型正确的HashMap.
|
static <K,V> HashMap<K,V> |
newHashMapWithCapacity(int expectedSize,
float loadFactor)
根据等号左边的类型, 构造类型正确的HashMap.
|
static <K extends Comparable,V> |
newSortedMap()
根据等号左边的类型,构造类型正确的TreeMap.
|
static <C,K extends C,V> |
newSortedMap(Comparator<C> comparator)
根据等号左边的类型,构造类型正确的TreeMap.
|
static <K,V> V |
putIfAbsentReturnLast(ConcurrentMap<K,V> map,
K key,
V value)
ConcurrentMap的putIfAbsent()返回之前的Value,此函数封装返回最终存储在Map中的Value
|
static <K,V> Map<K,V> |
singletonMap(K key,
V value)
返回一个只含一个元素但结构特殊的Map,节约空间.
|
static <K,V extends Comparable> |
sortByValue(Map<K,V> map,
boolean reverse)
对一个Map按Value进行排序,返回排序LinkedHashMap,多用于Value是Counter的情况.
|
static <K,V> Map<K,V> |
sortByValue(Map<K,V> map,
Comparator<? super V> comparator)
对一个Map按Value进行排序,返回排序LinkedHashMap.
|
static <K,V extends Comparable> |
topNByValue(Map<K,V> map,
boolean reverse,
int n)
对一个Map按Value进行排序,返回排序LinkedHashMap,最多只返回n条,多用于Value是Counter的情况.
|
static <K,V> Map<K,V> |
topNByValue(Map<K,V> map,
Comparator<? super V> comparator,
int n)
对一个Map按Value进行排序,返回排序LinkedHashMap, 最多只返回n条,多用于Value是Counter的情况.
|
static <K,V> Map<K,V> |
unmodifiableMap(Map<? extends K,? extends V> m)
返回包装后不可修改的Map.
|
static <K,V> SortedMap<K,V> |
unmodifiableSortedMap(SortedMap<K,? extends V> m)
返回包装后不可修改的有序Map.
|
public static final float DEFAULT_LOAD_FACTOR
public static boolean isEmpty(Map<?,?> map)
public static boolean isNotEmpty(Map<?,?> map)
public static <K,V> V putIfAbsentReturnLast(ConcurrentMap<K,V> map, K key, V value)
org.apache.commons.lang3.concurrent.ConcurrentUtils#putIfAbsent(ConcurrentMap, Object, Object)public static <K,V> V createIfAbsentReturnLast(ConcurrentMap<K,V> map, K key, MapUtil.ValueCreator<? extends V> creator)
org.apache.commons.lang3.concurrent.ConcurrentUtils#createIfAbsent(ConcurrentMap, Object,
org.apache.commons.lang3.concurrent.ConcurrentInitializer)@Deprecated public static <K,V> HashMap<K,V> newHashMap()
public static <K,V> HashMap<K,V> newHashMapWithCapacity(int expectedSize, float loadFactor)
com.google.common.collect.Maps#newHashMap(int)public static <K,V> HashMap<K,V> newHashMap(K key, V value)
public static <K,V> HashMap<K,V> newHashMap(K[] keys, V[] values)
public static <K,V> HashMap<K,V> newHashMap(List<K> keys, List<V> values)
public static <K extends Comparable,V> TreeMap<K,V> newSortedMap()
Maps.newTreeMap()public static <C,K extends C,V> TreeMap<K,V> newSortedMap(Comparator<C> comparator)
Maps.newTreeMap(Comparator)public static <K extends Enum<K>,V> EnumMap<K,V> newEnumMap(Class<K> type)
public static <K,V> ConcurrentHashMap<K,V> newConcurrentHashMap()
public static <K,V> ConcurrentSkipListMap<K,V> newConcurrentSortedMap()
public static final <K,V> Map<K,V> emptyMap()
Collections.emptyMap()public static <K,V> Map<K,V> emptyMapIfNull(Map<K,V> map)
Collections.emptyMap()public static <K,V> Map<K,V> singletonMap(K key, V value)
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)
Collections.unmodifiableMap(Map)public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m)
public static <K,V> com.google.common.collect.MapDifference<K,V> difference(Map<? extends K,? extends V> left, Map<? extends K,? extends V> right)
MapDifferencepublic static <K,V extends Comparable> Map<K,V> sortByValue(Map<K,V> map, boolean reverse)
reverse - 按Value的倒序 or 正序排列public static <K,V> Map<K,V> sortByValue(Map<K,V> map, Comparator<? super V> comparator)
public static <K,V extends Comparable> Map<K,V> topNByValue(Map<K,V> map, boolean reverse, int n)
reverse - 按Value的倒序 or 正序排列public static <K,V> Map<K,V> topNByValue(Map<K,V> map, Comparator<? super V> comparator, int n)
Copyright © 2018. All rights reserved.