2011-11-14 76 views
0

可能重複:
How to sort a Map<Key, Value> on the values in Java?如何按值排序hashmap?

我需要根據存儲在它的值進行排序我的HashMap中。哈希映射包含存儲在phone中的聯繫人姓名,並且我需要一旦對值進行排序,鍵就會自動排序。或者可以將鍵和值綁定在一起,因此值中的任何更改都應該反映在鍵中。

HashMap<Integer,String> map = new HashMap<Integer,String>(); 
    map.put(1,froyo); 
    map.put(2,abby); 
    map.put(3,denver); 
    map.put(4,frost); 
    map.put(5,daisy); 

所需的輸出:

2,abby; 
5,daisy; 
3,denver; 
4,frost; 
1,froyo; 
+0

而且也是今天早些時候發佈了一個問題的近精確複製。 -1重新發布,甚至無需修正示例中的錯誤。 –

+0

如果你能提供答案,那就太好了。順便說一句,你在說什麼樣的錯誤。 –

+0

當它是''時,你有'(「1」,froyo)等。 –

回答

0
private static class MyMapComparator implements Comparator<Map.Entry<Integer, String>> 
{ 
    @Override 
    public int compare(Map.Entry<Integer, String> a, Map.Entry<Integer, String> b) { 
     return a.getValue().compareTo(b.getValue()); 
    } 
} 
... 

List<Map.Entry<Integer, String>> entries = new ArrayList<Map.Entry<Integer, String>>(map.entries()); 
Collections.sort(entries, new MyMapComparator());