首页 > 学院 > 开发设计 > 正文

List<Map<String, Object>>排序

2019-11-06 08:40:31
字体:
来源:转载
供稿:网友
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;        }     }}/*运行结果排序前:count:2 name:abc key:acvcount:3 name:bbc key:bcvcount:1 name:cbc key:ccvcount:4 name:cbc key:ccv降序:count:4 name:cbc key:ccvcount:3 name:bbc key:bcvcount:2 name:abc key:acvcount:1 name:cbc key:ccv升序:count:1 name:cbc key:ccvcount:2 name:abc key:acvcount:3 name:bbc key:bcvcount:4 name:cbc key:ccv*/
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表