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());
            
    
  • 相关阅读:
    全国城市经纬度
    CentOS下SSH无密码登录的配置
    Nginx 1.9+PHP5.6 环境搭建
    Sphinx 2.2.11-release reference manual
    JVM 内存管理机制
    solr 3.5.0 与 tomcat 7.0.5 整合配置
    lucene 分词实现
    lucene 索引 demo
    lucene 搜索demo
    Lucene 简单API使用
  • 原文地址:https://www.cnblogs.com/xiaojiluben/p/13903062.html
Copyright © 2011-2022 走看看