分享个代码块,对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 List getList(Map map, Object key) {
List value = (List) map.get(key);
if (isNull(value)) {
value = new LinkedList();
map.put(key, value);
}
return value;
}
/**
*
* @param item
* @return
*/
public static int indexOfMapKeyOrValue(Map map, Object item) {
Set 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 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