在 ArrayList 中查找 ArrayList 元素



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

您可以简单地使用Collection.containsAll(collection)进行检查。

此外,我建议使用 EnumSet 而不是 ArrayList .

最新更新