Ich benutze den folgenden Code, um meine hashmap nach ihrem Wert zu sortieren. Aber das Ergebnis scheint verwirrt, da es nur einen Eintrag für einen Wert enthält und einen anderen Eintrag mit doppeltem Wert entfernt. Hier ist der Comparator
Code:warum unterschiedlicher Schlüssel mit dupliziertem Wert verschwindet, wenn der Transfer hashmap to treemap
class ValueComparator implements Comparator {
Map map;
public ValueComparator(Map map) {
this.map = map;
}
public int compare(Object keyA, Object keyB) {
Comparable valueA = (Comparable) map.get(keyA);
Comparable valueB = (Comparable) map.get(keyB);
return valueB.compareTo(valueA);
}
Und hier ist, wie ich es verwenden:
TreeMap sortedMap=new TreeMap(new ValueComparator(allCandidateMap));
sortedMap.putAll(allCandidateMap);