java两个List「HashMap」去重合并----实现方式一

情景:最近在项目中遇到两个以List<HashMap>封装的list,需要把期中一个list合并到另一个中,覆盖之前已存在的。

目标list1集合:

 List<HashMap> list1 = new ArrayList<HashMap>();
 //list1集合示例:
 list1=[ {"id": "1", "name": "图图","status": "1" },
         {"id": "2", "name": "图图妈","status": "1"},
         {"id": "3", "name": "图图爸","status": "1" } ]

 

目标list2集合:

 List<HashMap> list2 = new ArrayList<HashMap>();
 //list2集合示例:
 list2=[ {"id": "1", "name": "图图","status": "1" },
         {"id": "4", "name": "小美","status": "2"},
         {"id": "5", "name": "壮壮","status": "2" } ]

结果list3集合:

 List<HashMap> list3 = new ArrayList<HashMap>();
 //list3集合示例:
 list3=[ {"id": "1", "name": "图图","status": "1" },
         {"id": "2", "name": "图图妈","status": "1" },
         {"id": "3", "name": "图图爸","status": "1" },
         {"id": "4", "name": "小美","status": "2"},
         {"id": "5", "name": "壮壮","status": "2" } ]

预期目标:把list1和list2中数据合并成一个新的list3同时吧相同部分图图那条记录去重。

解决思路:新建一个空的list3,然后把list1全部放进去,然后把list2按type值给type=1的记录剔除,同时把剩余的放到list3集合中。

解决代码代码展示:

    public List<HashMap> getNewList(List<HashMap> list1, List<HashMap> list2) {
        List<HashMap> list3 = new ArrayList<HashMap>();
        list3.addAll(list2);
        //剔除list2中status=1的记录
        for (HashMap hashMap : list1) {
            Iterator it = hashMap.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
                if (entry.getKey().equals("status")) {
                    if (!entry.getValue().equals("1")) {
                        list3.add(hashMap);
                    }
                }
            }
        }
        return list3;
    }

OK 这次就到这啦 ^ _ ^

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值