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循環(huán)

TA貢獻1866條經驗 獲得超5個贊
為什么要用雙層循環(huán)?樓下的想到的辦法不敢恭維,首先想到的應該是API的list的contains方法把
for (String my : myRoles){
if(hasRoles.contains(my)){
return true;
}
}
return false;
添加回答
舉報