码迷,mamicode.com
首页 > 编程语言 > 详细

map根据value从大到小排序

时间:2015-10-15 13:09:17      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

/**
     * 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;
    }


map根据value从大到小排序

标签:

原文地址:http://my.oschina.net/u/1169079/blog/517424

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!