zoukankan      html  css  js  c++  java
  • 集合异同,找出新增元素和删除元素

    更新操作时,数据库的数据是一个集合A,请求更新的集合是B,那么如何找出更新的集合中的新增元素和删除元素呢?
    例如

    A B
    1 1
    2
    3 3
    4 4
    5

    A是原来的集合,B是后来的集合。
    可见B删除了2,并增加了5。

    找新增: 遍历B,A不包含的元素为新增元素
    找删除: 遍历A,B不包含的元素为删除元素

    HashSet<Long> idsOnDb = new HashSet<>();
            idsOnDb.add(1l);
            idsOnDb.add(2l);
            idsOnDb.add(3l);
            idsOnDb.add(4l);
            
            HashSet<Long> idsOnHttp = new HashSet<>();
            idsOnHttp.add(1l);
            idsOnHttp.add(3l);
            idsOnHttp.add(4l);
            idsOnHttp.add(5l);
            
            // 新增的用户id集合
            List<Long> idsAdd = idsOnHttp
                .stream()
                // 筛选新增的,在数据库的集合中没有找到的即为新增的
                .filter(idUpdate -> !idsOnDb.contains(idUpdate))
                .collect(Collectors.toList());
    
            // 删除的角色id集合
            List<Long> idsDeleted = idsOnDb
                .stream()
                .distinct()
                .filter(idOnDb -> !idsOnHttp.contains(idOnDb))
                .collect(Collectors.toList());
            
    
  • 相关阅读:
    手机号码格式化显示javascript
    MySql存储过程与函数
    mysql连接方法
    上传文件夹或上传文件到linux
    VIM编辑器
    linux的简单命令
    CentOS虚拟机网卡配置
    MySQL的远程连接问题 错误1130
    日志备份的shell脚本
    JNA的用法
  • 原文地址:https://www.cnblogs.com/xiaojiluben/p/13903062.html
Copyright © 2011-2022 走看看