对比原来list 找出新的list对象中属性改变过对象(用于批量修改数据状态时候查找出那一条数据修改过)

 在做批量修改状态的时候,前端把所有修改或者没有修改的数据都传后端了,要求后端对这个数据进行处理,  如果是单表没有任何其他的逻辑操作其实不用找出来,我这边是需要 对启用的存redis,禁用的删除redis,故需要找出状态修改过的数据进行处理

public static void main(String[] args){
        //批量修改状态 查找原数据与现在数据修改过的数据
        List<RcsTopo> ysj=new ArrayList<>();
        ysj.add(new RcsTopo("111",0L,"111"));
        ysj.add(new RcsTopo("222",0L,"111"));
        ysj.add(new RcsTopo("333",0L,"111"));
        ysj.add(new RcsTopo("444",1L,"111"));
        ysj.add(new RcsTopo("555",0L,"111"));
        ysj.add(new RcsTopo("666",1L,"111"));
        ysj.add(new RcsTopo("777",1L,"111"));
        ysj.add(new RcsTopo("888",1L,"111"));
        ysj.add(new RcsTopo("999",0L,"111"));


        List<RcsTopo> xsj=new ArrayList<>();
        xsj.add(new RcsTopo("111",1L,"111"));
        xsj.add(new RcsTopo("222",1L,"111"));
        xsj.add(new RcsTopo("333",0L,"111"));
        xsj.add(new RcsTopo("444",0L,"111"));
        xsj.add(new RcsTopo("555",0L,"111"));
        xsj.add(new RcsTopo("666",0L,"111"));
        xsj.add(new RcsTopo("777",0L,"111"));
        xsj.add(new RcsTopo("888",1L,"111"));
        xsj.add(new RcsTopo("999",0L,"111"));

        List<String> dn=new ArrayList<>();//状态为0的数据
        dn.add("333");
        dn.add("444");
        dn.add("555");
        dn.add("666");
        dn.add("777");
        dn.add("999");

        List<String> en=new ArrayList<>();//状态为1的数据
        en.add("111");
        en.add("222");
        en.add("888");
        String a[]={"111","222"};
        String b[]={"333","444"};
        String[] topoIds=(String[]) ArrayUtils.addAll(a,b);//合并成一个数组

        //找出状态修改过的数据
        List<RcsTopo> intersection = xsj.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.getTopoId().equals(tm.getTopoId())&&tm.getStatus().intValue()!=item.getStatus().intValue()))).collect(toList());
        intersection.forEach(s -> {
            System.out.println(s.getTopoId()+"==="+s.getStatus());
        });


        List<String> eListNew = en.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.equals(tm.getTopoId())&&tm.getStatus().intValue()!=1))).collect(toList());
        List<String> dListNew = dn.stream().filter(item ->(ysj.parallelStream().anyMatch(tm->item.equals(tm.getTopoId())&&tm.getStatus().intValue()!=0))).collect(toList());
        eListNew.forEach(s -> {
            System.out.println("1===="+s);
        });

        dListNew.forEach(s -> {
            System.out.println("0====="+s);
        });

        ArrayList<String> arrayList=new ArrayList();
        String[] strings = new String[arrayList.size()];
        arrayList.toArray(strings);

    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值