實現Map按key或按value排序

原理思路:用List實現排序,而後將List中的值遍歷存入到LinkedHashMap排序

實現方式:get

//這裏將map.entrySet()轉換成list
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(paramMap.entrySet());

//而後經過比較器來實現排序
Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() {
//降序排序
public int compare(Entry<String, Integer> o1,Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});

Map<String, Integer> resultMap = new LinkedHashMap<String,Integer>();
for(Entry<String, Integer> map : list){
resultMap.put(map.getKey(), map.getValue());
}io

備註:它雖然增長了時間和空間上的開銷,可是經過維護一個運行於全部條目的雙向鏈表,LinkedHashMap保證了元素迭代的順序。該迭代順序能夠是插入順序或者是訪問順序原理

相關文章
相關標籤/搜索