两个list求差集

业务需要,List中存放含有多个字段的自定义对象,两个List中的对象只要主键一样就判断为相等,因此这里不能使用api List.removeAll(List)。https://www.jb51.net/article/117750.htm

// 删除左边重复的元素,返回左边
    private List<DataPermission> removeAll(List<DataPermission> left, List<DataPermission> right){
        List<DataPermission> res = new LinkedList<>(left);
        Set<String> set = new HashSet<>();
        for(DataPermission dataPermission : right){
            set.add(dataPermission.getPermissionCode());
        }
        Iterator<DataPermission> iter = res.iterator();
        while(iter.hasNext()){
            if(set.contains(iter.next().getPermissionCode())){
                iter.remove();
            }
        }
        return res;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,808评论 25 709
  • 正在思考什么是爱情,听到了同班同学的爱情故事后,深深打动,也似乎找到了答案,真正的爱情应该就是疯狂的奋不顾身,匪夷...
    傲骨美姐阅读 336评论 0 0
  • 忙!忙!忙! 感觉每天忙的团团转,像陀螺一样旋转于各类事项中; 桌上满满当当的未完成文件还是一样纹丝不动的堆着; ...
    Ellenview阅读 379评论 1 2
  • 沐夏有点紧张,小巧并不高的鼻子冒着汗珠,大边框的眼镜下一双大眼睛怯怯的又带着稍稍过分的热情面对着顾客,这是...
    染独欢阅读 301评论 4 3
  • 午,未眠。 友人请托,成一半而未尽。 思之,低估形势。 记下,勉: 一为应详细了解转托者需求,勿使之过高期望。 二...
    胜似春阅读 109评论 0 0