两个 list 循环匹配数据 ,比较做更新、插入、删除

 public static void main(String[] args) {
        List<Table>  old = new ArrayList<>();
        old.add(new Table("name1","desc1"));
        old.add(new Table("name2","desc2"));
        old.add(new Table("name3","desc3"));
        old.add(new Table("name4","desc4"));


        List<Table>  new1  = new ArrayList<>();

        new1.add(new Table("name3","desc3"));
        new1.add(new Table("name4","desc44"));
        new1.add(new Table("name5","desc5"));
        new1.add(new Table("name6","desc6"));
        System.out.println("add name1 ,name2");
        List<Table>  addList  = new ArrayList<>();
        addList = old.stream().filter(item -> new1.stream().noneMatch( newItem -> newItem.getName().equals(item.getName()))
        ).collect(Collectors.toList());
        System.out.println(addList);

        System.out.println("update name4");
        List<Table>   updateList  = new ArrayList<>();
        updateList = old.stream().filter(item -> new1.stream().anyMatch( newItem -> newItem.getName().equals(item.getName())
                && !newItem.getRemark().equals(item.getRemark()))
        ).collect(Collectors.toList());
        System.out.println(updateList);

        System.out.println("delete name5,6");
        List<Table>   deleteList  = new ArrayList<>();
        deleteList = new1.stream().filter(item -> old.stream().noneMatch( newItem -> newItem.getName().equals(item.getName()))
        ).collect(Collectors.toList());
        System.out.println(deleteList);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值