package com.fpcms.common.util;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import com.github.rapid.common.util.ObjectUtil;
public class MapUtil {
public static void mergeWithDefaultMap(Map map,Map defaultMap) {
for(Object key : defaultMap.keySet()) {
Object value = map.get(key);
Object defaultValue = defaultMap.get(key);
if(ObjectUtil.isNullOrEmptyString(value)) {
map.put(key, defaultValue);
}
}
}
@SuppressWarnings("all")
public static Map sortByValue(Map map) {
return sortByValue(map,false);
}
@SuppressWarnings("all")
public static Map sortByValue(Map map, final boolean reverse) {
List list = new LinkedList(map.entrySet());
Collections .sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
if (reverse) {
return -((Comparable) ((Map .Entry)o1).getValue())
.compareTo(((Map .Entry)o2).getValue());
}
return ((Comparable) ((Map .Entry)o1).getValue())
.compareTo(((Map .Entry)o2).getValue());
}
});
Map result = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}