Ant*_*ony 24
这是一个解决方案:
public static <K, V extends Comparable<V>> Map<K, V> sortByValues(final Map<K, V> map) {
Comparator<K> valueComparator = new Comparator<K>() {
public int compare(K k1, K k2) {
int compare = map.get(k2).compareTo(map.get(k1));
if (compare == 0) return 1;
else return compare;
}
};
Map<K, V> sortedByValues = new TreeMap<K, V>(valueComparator);
sortedByValues.putAll(map);
return sortedByValues;
}
Run Code Online (Sandbox Code Playgroud)
请注意,地图从最高值到最低值排序.
Apache Commons Collections有一个TreeBidiMap:
此类保证映射将按升序键顺序和升序值顺序排列,并根据键和值的类的自然顺序进行排序.
有它的一个Java5的,仿制药口这里.
| 归档时间: |
|
| 查看次数: |
77106 次 |
| 最近记录: |