可以先将map中各元素存放在list中,再对list进行排序。list排序,利用Collections.sort()只要重写compare方法即可。
下面的代码实现按照value值的降序排列。
public static Map sortMap(Map oldMap) {
ArrayList> list = new ArrayList>(oldMap.entrySet());
Collections.sort(list, new Comparator>() {
@Override
public int compare(Entry arg0,
Entry arg1) {
return (int) (arg1.getValue() - arg0.getValue());
}
});
Map newMap = new LinkedHashMap();
for (int i = 0; i < list.size(); i++) {
newMap.put(list.get(i).getKey(), list.get(i).getValue());
}
return newMap;
}