List<Map<String, Object>>排序

import java.net.SocketException;
 import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
  
   
  public class MapSort {
      public static void main(String[] args) throws UnknownHostException, SocketException {
           
          List<Map<String, Object>> listResult = new ArrayList<Map<String, Object>>();
          Map<String, Object> map1 = new LinkedHashMap<String, Object>();
          map1.put("count", 2);
          map1.put("name", "abc");
          map1.put("key", "acv");
          listResult.add(map1);
          Map<String, Object> map2 = new LinkedHashMap<String, Object>();
          map2.put("count", 3);
          map2.put("name", "bbc");
          map2.put("key", "bcv");
          listResult.add(map2);
          Map<String, Object> map3 = new LinkedHashMap<String, Object>();
          map3.put("count", 1);
          map3.put("name", "cbc");
          map3.put("key", "ccv");
          listResult.add(map3);
          Map<String, Object> map4 = new LinkedHashMap<String, Object>();
          map4.put("count", 4);
          map4.put("name", "cbc");
          map4.put("key", "ccv");
          listResult.add(map4);
           
          System.out.println("排序前:");
          for (Map<String, Object> map : listResult) {
              System.out.println("count:"+map.get("count")+" name:"+map.get("name")+" key:"+map.get("key"));
          }
           
          Collections.sort(listResult, new MapComparatorDesc());
           
          System.out.println("降序:");
          for (Map<String, Object> map : listResult) {
              System.out.println("count:"+map.get("count")+" name:"+map.get("name")+" key:"+map.get("key"));
          }
           
          Collections.sort(listResult, new MapComparatorAsc());
           
          System.out.println("升序:");
          for (Map<String, Object> map : listResult) {
              System.out.println("count:"+map.get("count")+" name:"+map.get("name")+" key:"+map.get("key"));
          }
      }
      static class MapComparatorDesc implements Comparator<Map<String, Object>> {
          @Override
          public int compare(Map<String, Object> m1, Map<String, Object> m2) {
              Integer v1 = Integer.valueOf(m1.get("count").toString());
              Integer v2 = Integer.valueOf(m2.get("count").toString());
              if (v2 != null) {
                  return v2.compareTo(v1);
              }
              return 0;
          }
    
      }
      static class MapComparatorAsc implements Comparator<Map<String, Object>> {
          @Override
          public int compare(Map<String, Object> m1, Map<String, Object> m2) {
              Integer v1 = Integer.valueOf(m1.get("count").toString());
              Integer v2 = Integer.valueOf(m2.get("count").toString());
              if(v1 != null){
                  return v1.compareTo(v2);
              }
              return 0;
          }
    
      }
  }
   
  /*运行结果
82 排序前:
83 count:2 name:abc key:acv
84 count:3 name:bbc key:bcv
85 count:1 name:cbc key:ccv
86 count:4 name:cbc key:ccv
87 降序:
88 count:4 name:cbc key:ccv
89 count:3 name:bbc key:bcv
90 count:2 name:abc key:acv
91 count:1 name:cbc key:ccv
92 升序:
93 count:1 name:cbc key:ccv
94 count:2 name:abc key:acv
95 count:3 name:bbc key:bcv
96 count:4 name:cbc key:ccv
97 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值