Java Map排序

1 按照Key排序:

        Java類庫中存在相應的實現,如:TreeMap 不必多說,由於TeeMap在修改和刪除之後需要重新排序,要消耗一些性能。當然可以考慮,先使用HashMap進行進行創建和修改操作,如果需要排序,再調用 new TreeMap(hashMap) 來根據Key進行排序


2 按照Value排序:

      Java類庫中沒有相應的實現,可自己實現如下:

               Map<String, Integer> _map = new HashMap<String, Integer>() ;
_map.put("北京", 50);
_map.put("河南", 10);
_map.put("海南", 20);
_map.put("天津", 30);
_map.put("河北", 40);

                List<Entry<String, Integer>> _list = new ArrayList<Map.Entry<String,Integer>>() ;
_list.addAll(_map.entrySet()) ;

Collections.sort(_list, new Comparator<Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> o1,
Entry<String, Integer> o2) {
// TODO Auto-generated method stub
return o1.getValue().compareTo(o2.getValue());
}
});

for( Entry<String, Integer> _entry : _list ){
System.out.println(_entry.getKey() + ":" + _entry.getValue()) ;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章