當前位置:成語大全網 - 書法字典 - java如何排序映射值?

java如何排序映射值?

包圖;

導入Java . util . ArrayList;

導入Java . util . collections;

導入Java . util . comparator;

導入Java . util . list;

導入Java . util . map;

導入Java . util . map . entry;

導入Java . util . treemap;

公共類排序映射{

公共靜態void main(String[] args) {

map map = new TreeMap();

Map.put(《書》,4);

Map.put("視聽",6);

Map.put ("material ",9);

Map.put(《音樂》,8);

Map.put(《影視》,7);

Map.put("動畫",4);

Map.put(《宋》卷三);

Map.put("圖片",2);

Map.put ("icon ",6);

ArrayList & lt地圖。Entry & ltString,Integer & gt& gtentries= sortMap(映射);

for(int I = 0;我& lt5;i++){

系統。out.print(entries.get(i))。getKey()+":" +entries.get(i)。getValue());

}

}

公共靜態數組列表& lt地圖。Entry & ltString,Integer & gt& gtsortMap(Map map){

列表& lt地圖。Entry & ltString,Integer & gt& gtentries = new ArrayList & lt地圖。Entry & ltString,Integer & gt& gt(map . entry set());

Collections.sort(條目,新比較器& lt地圖。Entry & ltString,Integer & gt& gt() {

公共int比較(Map。Entry & ltString,Integer & gtobj1,地圖。Entry & ltString,Integer & gtobj2) {

返回obj 2 . getvalue()-obj 1 . getvalue();

}

});

return(ArrayList & lt;Entry & ltString,Integer & gt& gt)詞條;

}

}12345678910111213141516171819202122232425262728293031323334353637

此時按降序排序。如果要升序排序,Comparator的返回就改成obj 1 . getvalue()-obj 2 . getvalue();就這麽幹吧

總結:因為TreeMap默認主要是對鍵進行排序,所以有時候我們需要對值進行排序。這時候主要的策略就是把map改成List,然後用Collections.sort來排序,重寫比較器方法。