public class MapKits extends Object
copy from vipshop VJTools(com.vip.vjtools.vjkit.collection.MapUtil) and made some changes.
| 限定符和类型 | 字段和说明 |
|---|---|
static float |
DEFAULT_LOAD_FACTOR |
| 构造器和说明 |
|---|
MapKits() |
| 限定符和类型 | 方法和说明 |
|---|---|
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> Map<K,V> |
merge(Map<K,V> map,
Map<K,V> maps) |
static <K,V> Map<K,V> |
merge(Map<K,V> target,
Map<K,V> map,
Map<K,V>... maps) |
static <K,V> Map<K,V> |
merge(Supplier<Map<K,V>> supplier,
Map<K,V> map,
Map<K,V>... maps) |
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(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 Map<String,Object> |
removeNullValue(Map<String,Object> 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的情况.
|
public static final float DEFAULT_LOAD_FACTOR
public static boolean isEmpty(Map<?,?> map)
public static boolean isNotEmpty(Map<?,?> map)
public static <K,V> Map<K,V> merge(Supplier<Map<K,V>> supplier, Map<K,V> map, Map<K,V>... maps)
public static <K,V> HashMap<K,V> newHashMapWithCapacity(int expectedSize, float loadFactor)
注意HashMap中有0.75的加载因子的影响, 需要进行运算后才能正确初始化HashMap的大小.
加载因子也是HashMap中减少Hash冲突的重要一环,如果读写频繁,总记录数不多的Map,可以比默认值0.75进一步降低,建议0.5
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(@Nullable 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 <K,V> Map<K,V> emptyMapIfNull(Map<K,V> map)
注意返回的Map不可写, 写入会抛出UnsupportedOperationException.
public 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 © 2019. All rights reserved.