比较两个List,取出差异数据
程序员文章站
2022-04-15 13:33:29
...
对比list对象集合,需要重写equals和hashcode方法,如果为基本类型集合,则不需要
我这里通过判断以下7个字段是否相同来判断对象是否一致
@Override
public boolean equals(Object obj) {
if(obj == this) {return true;}
if (!(obj instanceof Resource)) { return false;}
Resource re = (Resource) obj;
return resourceName.equals(re.resourceName)&&
resourceType==re.getResourceType()&&
resourceUrl.equals(re.getResourceUrl())&&
permission.equals(re.getPermission())&&
parentPermission.equals(re.getParentPermission())&&
isDelete==re.getIsDelete()&&
showOrder==re.getShowOrder()
;
}
@Override
public int hashCode() {
return Objects.hash(resourceName, resourceType, resourceUrl,permission,parentPermission,isDelete,showOrder);
}
//比较两个list
//取出存在menuOneList中,但不存在resourceList中的数据,差异数据放入differentList
private void listCompare(List<Resource> menuOneList, List<Resource> resourceList) {
Map<Resource,Integer> map = new HashMap<Resource,Integer>(resourceList.size());
List<Resource> differentList = new ArrayList<Resource>();
for(Resource resource : resourceList){
map.put(resource,1);
}
for(Resource resource1 : menuOneList){
if(map.get(resource1)==null){
differentList.add(resource1);
}
}
}
上一篇: php-md5变换算法之密文分割MD5
下一篇: php addcslashes函数怎么用