java List嵌套Map,每个Map中的key值一样,但是value有重复,进行分类,最后Map输出。

List<Map<String, Object>> listMap = new ArrayList<>();
        Map<String, Object> map1 = new HashMap<>();
        map1.put("111", "哈哈哈哈");
        map1.put("222", "wef");
        listMap.add(map1);
        Map<String, Object> map2 = new HashMap<>();
        map2.put("111", "哈哈哈哈");
        map2.put("222", "ddd");
        listMap.add(map2);
        Map<String, Object> map3 = new HashMap<>();
        map3.put("111", "bbb");
        map3.put("222", "444");
        listMap.add(map3);
        Map<String, Object> map4 = new HashMap<>();
        map4.put("111", "srfsf");
        map4.put("222", "w555ef");
        listMap.add(map4);
//        Map<String, Object> map5 = new HashMap<>();
//        map5.put("111", "fff");
//        map5.put("222", "srfsf");
//        listMap.add(map5);

        Map<String, Integer> cntMap = new HashMap();

        for (Map map : listMap) {
    
    
            if (cntMap.containsKey(map.get("111"))) {
    
    
                cntMap.put((String) map.get("111"), cntMap.get(map.get("111")) + 1);
            } else {
    
    
                cntMap.put((String) map.get("111"), 1);
            }
        }

        Map<String, List> result = new HashMap<>();
        for (Map map : listMap) {
    
    
            if (cntMap.keySet().contains(map.get("111"))) {
    
    
                List tempList = Optional.ofNullable(result.get(map.get("111"))).orElse(new ArrayList());
                tempList.add(map.get("222"));
                result.put((String) map.get("111"), tempList);
            }
        }
        System.out.println(result);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45844443/article/details/127561851
今日推荐