请叫我小C
2013-12-27 09:18:33
证
【小C出品】对java Map的操作
分享个代码块,对map的几个操作。欢迎补充。
import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class MapUtil { /** * 数组2Map * @param keys * @param values * @return */ public static Map arrayToMap(Object[] keys, Object[] values) { boolean hasValue = isNotNull(values); Map map = new HashMap(); for (int i = 0; i < keys.length; i++) { map.put(keys[i], hasValue ? values[i] : null); } return map; } /** * params2Map * @param mapDatas * @return */ public static Map toMap(Object... mapDatas) { if (isNull(mapDatas)) { return new LinkedHashMap(); } else if (mapDatas.length % 2 != 0) { throw new IllegalArgumentException("参数长度只能是偶数"); } else { Map map = new LinkedHashMap(); for (int i = 0; i < mapDatas.length;) { Object key = mapDatas[i++]; Object val = mapDatas[i++]; map.put(key, val); } return map; } } /** * 获取List, 没有则创建新的 */ public static <T> List<T> getList(Map map, Object key) { List<T> value = (List<T>) map.get(key); if (isNull(value)) { value = new LinkedList<T>(); map.put(key, value); } return value; } /** * * @param item * @return */ public static int indexOfMapKeyOrValue(Map map, Object item) { Set<Map.Entry> entrySet = map.entrySet(); int i = 0; for (Entry entry : entrySet) { if (entry.getKey().equals(item) || entry.getValue().equals(item)) { return i; } i++; } return -1; } public static String getKey4Value(Map cache, Object value) { Set<Map.Entry> entrySet = cache.entrySet(); for (Map.Entry entry : entrySet) { if (entry.getValue() == value || entry.getValue().equals(value)) { return entry.getKey().toString(); } } return ""; } public static boolean isNull(Object src) { return src == null; } public static boolean isNotNull(Object src) { return !isNull(src); } }
由最代码官方编辑于2013-12-27 9:52:03
猜你喜欢
请下载代码后再发表评论



wuziayng1232 LV10
2023年5月8日
TCTCTCL LV1
2022年12月4日
蔡 LV10
2021年6月12日
何松林 LV7
2021年4月20日
ping184 LV1
2021年3月16日
zhangdezheng1 LV1
2020年12月29日
zaq123zaq LV10
2020年12月22日
爱情戴罪的羔羊 LV7
2020年8月7日
1113783182 LV1
2020年7月2日
llsama LV9
2020年3月26日