【发布时间】:2016-11-19 14:31:54
【问题描述】:
public class Solution {
public static void main(String[] args) {
HashMap<String,Integer> hm = new HashMap<>();
hm.put("red",23);
hm.put("orange",1);
hm.put("yellow",32);
hm.put("green",23);
TreeMap<String,Integer> tm = new TreeMap<>(new ValueComparator(hm));
tm.putAll(hm);
for(String key : tm.keySet())
System.out.println(key+" "+tm.get(key));
}
}
class ValueComparator implements Comparator<String>{
Map<String, Integer> map;
public ValueComparator(Map<String, Integer> map){
this.map =map;
}
public int compare(String a, String b){
return map.get(b).compareTo(map.get(a));
}
}
问题:它根据值正确排序,但正在删除重复值。可以请人指出原因。
电流输出:
yellow 32
red 23
orange 1
预期输出:
yellow 32
red 23
green 23
orange 1
我在TreeMap 中使用了Comparator,它依次根据值对HashMap 进行排序
【问题讨论】:
标签: java sorting hashmap comparator treemap