List<Map> 合并去重

去重之前,将有值的对象赋给没值的对象,再进行合并

    // 去重合并
    public static List<Map<String, Object>> filterListByName(List<Map<String, Object>> list) {
        List<Map<String, Object>> list1 = new ArrayList<>();
        if (null == list || list.size() <= 0) {
            return list;
        } else {
            // 填充空值
            for (int i = 0; i < list.size(); i++) {
                Map<String, Object> map1 = list.get(i);
                Map<String, Object> mapbeforeAll = new HashMap<>();
                for (int j = i + 1; j < list.size(); j++) {
                    Map<String, Object> map2 = list.get(j);
                    // 获取前后更改后的相同key值
                    for (String key1 : map1.keySet()) {
                        if (!Objects.isNull(map1.get(key1))) {
                            mapbeforeAll.put(key1, map1.get(key1));
                        } else {
                            mapbeforeAll.put(key1, map2.get(key1));
                        }
                    }
                    list1.add(mapbeforeAll);
                }
            }
            // 去除重复元素
            for (int i = 0; i < list1.size(); i++) {
                Map<String, Object> map1 = list1.get(i);
                for (int j = i + 1; j < list1.size(); j++) {
                    if (map1.get("villagecode").equals(list1.get(j).get("villagecode"))) {
                        list1.remove(j);
                        j--;
                    }
                }
            }
            return list1;
        }
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值