3 回答

TA贡献1858条经验 获得超8个赞
用Set做一个myRoles和hasRoles的并集,然后判断这个并集的大小是不是等于myRoles和hasRoles的大小相加,如果不是的话,可定有重复了。
Java代码
Set<String> totalRoles = new HashSet<String>();
List<String> myRoles = new ArrayList<String>();
List<String> hasRoles = new ArrayList<String>();
public boolean hasRole()
{
// you can use addAll()
for (String my : myRoles)
{
totalRoles.add(my);
}
// you can use addAll()
for (String role : hasRoles)
totalRoles.add(role);
}
return totalRoles.size()==(myRoles.size()+hasRoles.size());
}
查看下ArrayList.retainAll 和removeAll本质上都做了两个for循环

TA贡献1866条经验 获得超5个赞
为什么要用双层循环?楼下的想到的办法不敢恭维,首先想到的应该是API的list的contains方法把
for (String my : myRoles){
if(hasRoles.contains(my)){
return true;
}
}
return false;
添加回答
举报