對map集合按照value從大到小進行排序
阿新 • • 發佈:2017-10-24
sta 二叉 cti edm pri 數據表 iterator 表結構 .so
List list = new LinkedList(unsortMap.entrySet());
// System.out.println("list:"+list);
Collections.sort(list, new Comparator()
{
public int compare(Object o1, Object o2)
{
return ((Comparable) ((Map.Entry) (o2)).getValue())
.compareTo(((Map.Entry) (o1)).getValue());
}
});
Map sortedMap = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry)it.next();
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
概述:
基本特點:
該集合存儲鍵值對,而且要保證鍵的惟一性
子類:
|--HashTable 底層是哈希數據表結構,不可以使用Null作為鍵或者值;該集合線程是同步的
|--hashMap 底層是哈希數據表結構,可以使用Null作為鍵或者值,該集合線程是不同步的
|--treemap 底層是二叉樹結構,線程不同步,可以對Map中的鍵值可以排序
Map集合的兩種取出方式(原理:將map集合轉換成set,再使用叠代器)
1.傳入map集合即可
public static Map sortByComparator(Map unsortMap){
List list = new LinkedList(unsortMap.entrySet());
// System.out.println("list:"+list);
Collections.sort(list, new Comparator()
{
public int compare(Object o1, Object o2)
{
return ((Comparable) ((Map.Entry) (o2)).getValue())
.compareTo(((Map.Entry) (o1)).getValue());
}
});
Map sortedMap = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry)it.next();
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
對map集合按照value從大到小進行排序