业务需要,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;
}
网友评论