如何尝试这样,
的方法基于排序地图值DESC
public static Map<Character, Integer> mapSortedByValues(Map<Character, Integer> map) {
List<Map.Entry<Character, Integer>> entryList = new LinkedList<Map.Entry<Character, Integer>>(map.entrySet());
Collections.sort(entryList,
new Comparator<Map.Entry<Character, Integer>>() {
@Override
public int compare(Map.Entry<Character, Integer> e1, Map.Entry<Character, Integer> e2) {
return (e1.getValue()).compareTo(e2.getValue());
}
}
);
Collections.reverse(entryList); //Reverse value DESC
Map<Character, Integer> sortedMap = new LinkedHashMap<Character, Integer>();
for (Map.Entry<Character, Integer> entry : entryList)
sortedMap.put(entry.getKey(), entry.getValue());
return sortedMap;
}
测试值排序;
public static void main(String[] args) {
LinkedHashMap<Character, Integer> map = new LinkedHashMap<Character, Integer>();
map.put('a', 7);
map.put('b', 9);
map.put('c', 6);
Map sortedMap = mapSortedByValues(map);
System.out.println(sortedMap);
}
将输出
{c=9, a=7, b=6}
你能解释一下你试过的吗?有大量的重复http://stackoverflow.com/questions/12184378/sorting-linkedhashmap – sidgate
你可以在地图中存储原始数据类型,我相信你可以只存储对象。你有包装类来做到这一点。 – saikumarm
为什么'c 9 a 7 b 6'? – xehpuk