我有一个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