如何按值对hashmap进行排序?

时间:2011-11-14 11:52:08

标签: java sorting hashmap

  

可能重复:
  How to sort a Map<Key, Value> on the values in Java?

我需要根据存储在其中的值对我的hashmap进行排序。 hashmap包含存储在phone中的联系人名称。所以我需要在对值进行排序后自动对键进行排序。或者你可以说键和值绑定在一起,因此值的任何变化都应该反映在键中。 / p>

 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;

1 个答案:

答案 0 :(得分: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());