Java HashMap按照key进行排序

Java HashMap本身就是升序排列,如果要获取集合数据,见如下代码:

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("d", 3);
map.put("c", 1); 
Set keySet = map.keySet();
Collections.sort(keySet);
for(Iterator ite = keySet.iterator(); ite.hasNext();) {
  String temp = ite.next();
  System.out.println("key-value: "+temp+","+map.getValue(temp);
} 

但是如果想要通过key进行降序排列,则需要重写sort方法,见如下代码:

Collections.sort(keySet, new Comparator() {
    public int compare(Object o1, Object o2) {
        if (Integer.parseInt(o1.toString()) > Integer.parseInt(o2.toString()) return 1;
        if (Integer.parseInt(o1.toString()) == Integer.parseInt(o2.toString()) return 0;
        else return - 1;
    }
});

如果map里面是其他类型直接更改sort里面的比较方法。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。