1
У меня есть два ArrayList userActions
и actionsToCheck
типа enum Action
.Поиск элементов ArrayList в ArrayList
Я хочу проверить, все ли элементы в 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
Независимо от того, хорошо это или нет, оно не читается. Я предлагаю сделать из него предикатную функцию, называя ее хорошо и уменьшая «прикованные звонки с края потока». – msw
добавил еще одну функцию и образец теста. лучше? – pallavt