根据value字段对map进行排序

一般来说,我们通常都是通过map中的key字段进行排序,步骤如下:


一、根据key对map进行排序


TreeMap<String , Integer> map = new TreeMap<String,Integer>(new Comparator<String>(){      //直接添加比较器

public int compare(String o1,String o2){

        .....

        }

});

但是却没有直接的方法能够进行value排序;


二、根据value对map进行排序


步骤如下:


1.提取视图

2.变成ArrayList,并添加比较器

Set<Map.Entry<String,Integer>>set = map.entrySet();

ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(set);

Collections.sort(list,new Comparator<Map.Entry<String,Integer>(){

public int compare(Map.Entry<String,Integer> o1,Map.Entry<String,Integer> o2){

     int value1 = o1.getValue();

int value2 = o2.getValue();

  //接着就可以进行比较了

    }

}>);

作者:xiazdong
出处:http://blog.xiazdong.info
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
原文地址:https://www.cnblogs.com/xiazdong/p/3058128.html