Android Map根据键或者值进行排序

来源:互联网 发布:python 金融数据接口 编辑:程序博客网 时间:2024/06/11 07:53

在解析JSON数据的时候,就常会解析到JsonObject,而jsonObject是无序的,但是有想让他变的有序,就会在每个JsonObject中加一个属性,sort,然后根据sort值的大小进行排序

这里简化为map根据或值进行排序

1.先往一个map集合里加入键值对

Map<String, Integer> map = new HashMap<String, Integer>();map.put("文具", 1);map.put("饮料", 5);map.put("泡面", 3);map.put("饼干", 2);

2.通过方法map.Entry<String, Integer>把这个map加入到一个list集合中

ArrayList<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());

3.进行排序

// 排序Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) {System.out.println(o2.getValue()+"---"+o1.getValue());                                 //两个数据中的值进行相比较,从大到小进行排序                                  return (o2.getValue() - o1.getValue());}});
4.排序后的结果

// 排序后for (int i = 0; i < infoIds.size(); i++) {String id = infoIds.get(i).toString();System.out.println(id);}

打印出来的结果为

饮料=5
泡面=3
饼干=2
文具=1

0 0
原创粉丝点击