/**
* map根据value值排序
* @param map
* @param num num<0取全部的值,num>=0取前num个
* @return
*/
public static <K,V extends Comparable<? super V>> List<K> revsort(Map<K, V> map,int num){
List<Map.Entry<K, V>> list = new ArrayList<Map.Entry<K,V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Entry<K, V> o1, Entry<K, V> o2) {
return (o2.getValue()).compareTo( o1.getValue() );
}
});
List<K> result = new ArrayList<K>();
if(num<0){
result.add(list.get(num).getKey());
for(Entry<K, V> entry : list){
result.add(entry.getKey());
}
}else{
for(int i=0;i<num;i++){
result.add(list.get(i).getKey());
}
}
System.out.println(result);
return result;
}
转载于:https://my.oschina.net/u/1169079/blog/517424