TreeMap不能按值排序.
下面rsMap是排序后的结果. Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(20, "abc");
map.put(13, "ggg");
map.put(40, "qqq");
map.put(12, "yyy");
List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>();
for (Map.Entry<Integer, String> entry : map.entrySet()) {
list.add(entry);
}
java.util.Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Map<Integer, String> rsMap = new LinkedHashMap<Integer, String>();
for (Map.Entry<Integer, String> entry : list) {
rsMap.put(entry.getKey(), entry.getValue());
}
下面rsMap是排序后的结果. Map<Integer, String> map = new TreeMap<Integer, String>();
map.put(20, "abc");
map.put(13, "ggg");
map.put(40, "qqq");
map.put(12, "yyy");
List<Map.Entry<Integer, String>> list = new ArrayList<Map.Entry<Integer, String>>();
for (Map.Entry<Integer, String> entry : map.entrySet()) {
list.add(entry);
}
java.util.Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Map<Integer, String> rsMap = new LinkedHashMap<Integer, String>();
for (Map.Entry<Integer, String> entry : list) {
rsMap.put(entry.getKey(), entry.getValue());
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货