我有两个类型为userActions
的ArrayList actionsToCheck
和enum Action
。
我想检查actionsToCheck
中是否存在userActions
中的所有元素。
以下是否足够好还是有更好的方法?
private boolean actionsAllowed(ArrayList<Action> userActions, ArrayList<Action> actionsToCheck){
return actionsToCheck.stream().allMatch(action-> actionAllowed(userActions,action));
}
private boolean actionAllowed(ArrayList<Actions> userActions, Action action){
return userActions.stream().anyMatch(userAction -> userAction == action);
}
ArrayList<Actions> userAction=new ArrayList<>();
userAction.add(ADD_USER);
userAction.add(DELETE_USER);
userAction.add(MODIFY_USER);
ArrayList<Actions> actionsToCheck=new ArrayList<>();
actionsToCheck.add(ADD_USER);
actionsToCheck.add(DELETE_USER);
actionsAllowed(userAction,actionsToCheck) //should return true
答案 0 :(得分:2)
您只需使用Collection.containsAll(collection)
进行检查即可。
此外,我建议您使用EnumSet
代替ArrayList
。