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));
}
}
問題:它正確地根據值進行排序,但刪除重複值。可以請某人指出原因。Java TreeMap基於值去除重複值的排序
電流輸出:
yellow 32
red 23
orange 1
預期輸出:
yellow 32
red 23
green 23
orange 1
我已經使用Comparator
內部TreeMap
,這又排序HashMap
基於值
感謝您的解釋,我無法得到背後的原因。 – Akash