2011-03-07 63 views

回答

2

我假設您將歌手存儲爲關鍵字,並將歌手的知名度作爲價值存儲。 HashMap沒有排序,並且TreeMap按鍵排序,而不是按值排序,所以它不起作用。

如果您需要歌手依熱門程度排序,然後建立與地圖中所有的歌手列表,然後利用其比較無論是歌手的人氣比較排序此列表:

List<String> singers = new ArrayList<String>(map.keySet()); 
Collections.sort(singers, new Comparator<String>() { 
    @Override 
    public int compare(String s1, String s2) { 
     Integer popularity1 = map.get(s1); 
     Integer popularity2 = map.get(s2); 
     return popularity1.compareTo(popularity2); 
    } 
}); 
2

HashMaps可以(按設計)不被排序。如果您需要訂購地圖,請使用TreeMap

+3

'TreeMap'不會幫助您按價值對地圖進行排序。 – axtavt 2011-03-07 11:28:03

1

您無法控制HashMap元素的順序。新建一個TreeMap<Integer,List<String>>並將數據複製到它。使用List<String>來覆蓋你有int值重複的情況。

相關問題