Java-用value对Map进行排序
/**
* 通过Map的value进行排序,返回有序的key
*
* @param <K>
* @param <V>
* @param map
* @param c
* @return
*/
public static <K, V> List<K> sortMapByValues(Map<K, V> map, Comparator<V> c) {
if (map == null || map.size() == 0)
return null;
ArrayList<K> keysList = new ArrayList<K>(map.keySet());
Collections.sort(keysList, new Comparator<K>() {
@Override
public int compare(K k1, K k2) {
// TODO Auto-generated method stub
return c.compare(map.get(k1), map.get(k2));
}
});
return keysList;
}