美文网首页
两个list求差集

两个list求差集

作者: 杜子龙 | 来源:发表于2018-08-14 18:56 被阅读0次

业务需要,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;
    }

相关文章

网友评论

      本文标题:两个list求差集

      本文链接:https://www.haomeiwen.com/subject/hozvbftx.html