我有一個HashMap
看起來像:反向HashMap的
HashMap<Player, Integer> playerHashMap = new HashMap<>();
播放器是包含姓名,號碼,年齡等
物件,現在我已經整理它,它像loookts這樣的:
key , value
-----------------
Player1, 1
Player2, 2
Player3, 4
Player4, 6
但我想實現的價值反轉這張地圖上,像這樣:
key , value
-----------------
Player4, 6
Player3, 4
Player2, 2
Player1, 1
任何想法?
排序方法(由值排序)看起來像這樣:
private static HashMap<Player, Integer> sortByValues(HashMap<Player, Integer> map) {
List list = new LinkedList(map.entrySet());
Collections.sort(list, new Comparator<Object>() {
public int compare(Object o1, Object o2) {
return ((Comparable) ((Map.Entry) (o1)).getValue())
.compareTo(((Map.Entry) (o2)).getValue());
}
});
HashMap<Player, Integer> sortedHashMap = new LinkedHashMap<Player, Integer>();
for (Iterator<?> it = list.iterator(); it.hasNext();) {
Map.Entry<Player, Integer> entry = (Map.Entry<Player, Integer>) it.next();
sortedHashMap.put(entry.getKey(), entry.getValue());
}
return sortedHashMap;
}
「*現在我已經對它排序了*」,因爲HashMap不能保證任何順序,所以聽起來並不真實。如果你的意思是你可以按照所描述的順序打印它們,而不是按照不同的順序打印它? – Pshemo
你是如何「排序」你的HashMap的?代碼在哪裏? – scrappedcola
我編輯我的文章,並添加如何看起來方法排序HashMap。 – czArek