在ArrayList中查找ArrayList元素

时间:2015-01-19 11:34:27

标签: java arrays arraylist

我有两个类型为userActions的ArrayList actionsToCheckenum 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

1 个答案:

答案 0 :(得分:2)

您只需使用Collection.containsAll(collection)进行检查即可。

此外,我建议您使用EnumSet代替ArrayList