業(yè)務(wù)需要歉糜,List中存放含有多個(gè)字段的自定義對(duì)象,兩個(gè)List中的對(duì)象只要主鍵一樣就判斷為相等辱魁,因此這里不能使用api List.removeAll(List)莫绣。https://www.jb51.net/article/117750.htm
// 刪除左邊重復(fù)的元素畴蒲,返回左邊
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;
}