两个list求差集

2018-08-14  本文已影响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;
    }
上一篇 下一篇

猜你喜欢

热点阅读