一个HashMap的工具类, 包含简单的创建, 简单的分组, 简单分组后的获取
public class MapUtils {
/**
* 通过一个键值对创建一个HashMap
* @param key 键
* @param value 值
* @param <K> 键的类型
* @param <V> 值的类型
* @return HashMap [key -> value]
*/
public static <K, V> Map<K,V> of(K key, V value) {
return of(key, value, null, null);
}
/**
* 通过两个键值对创建一个HashMap
* @param key1 键1
* @param value1 值1
* @param key2 键2
* @param value2 值
* @param <K> 键的类型
* @param <V> 值的类型
* @return HashMap [key1 -> value1, key2 -> value2]
*/
public static <K, V> Map<K,V> of(K key1, V value1, K key2, V value2) {
return of(key1, value1, key2, value2, null, null);
}
public static <K, V> Map<K,V> of(K key1, V value1, K key2, V value2, K key3, V value3) {
return of(key1, value1, key2, value2, key3, value3, null, null);
}
public static <K, V> Map<K,V> of(K key1, V value1, K key2, V value2, K key3, V value3, K key4, V value4) {
return of(key1, value1, key2, value2, key3, value3, key4, value4, null, null);
}
public static <K, V> Map<K,V> of(K key1, V value1, K key2, V value2, K key3, V value3, K key4, V value4, K key5, V value5) {
return of(key1, value1, key2, value2, key3, value3, key4, value4, key5, value5, null, null);
}
public static <K, V> Map<K,V> of(K key1, V value1, K key2, V value2, K key3, V value3, K key4, V value4, K key5, V value5, K key6, V value6) {
Map<K, V> resultMap = Maps.newHashMap();
putKeyAndValue(resultMap, key1, value1);
putKeyAndValue(resultMap, key2, value2);
putKeyAndValue(resultMap, key3, value3);
putKeyAndValue(resultMap, key4, value4);
putKeyAndValue(resultMap, key5, value5);
putKeyAndValue(resultMap, key6, value6);
return resultMap;
}
/**
* 通过一个列表生成一个HashMap
* @param inList 输入的列表
* @param keyGen 生成键的函数
* @param <IN> 输入的列表的类型
* @param <KEY> 生成的键的类型
* @return 生成的HashMap
*/
public static <IN, KEY> Map<KEY, IN> ofList(List<IN> inList, Function<IN, KEY> keyGen) {
return ofList(inList, keyGen, o ->