У меня есть объект Foo со следующими элементами:
class Foo {
int id;
int departmentId;
boolean condition1;
boolean condition2;
boolean condition3;
//...
}
и список объектов Foo (~ 10 тыс. Записей):
List<Foo> fooList = new ArrayList<>();
fooList.add(...);
//...
Мне нужно пройти через каждый из отделов этого списка и иметь возможность остановить любые дальнейшие итерации конкретного отдела, если его объекты удовлетворяют определенной комбинации условий.
Для этой цели я думал просто создать новую Карту, в которой мой идентификатор отдела будет использоваться в качестве ключа, а все связанные объекты Foo - в качестве значения. Чтобы я мог выполнять итерацию по моим новым объектам на основе DepartmentId и легко останавливать итерацию для других отделов с таким же Id после выполнения условия. Что-то вроде:
Map<Foo.departmentId, List<Foo>> departmentFoos = new HashMap<>();
Может ли это быть достигнуто лучше, чем итерация по моему fooList и помещение / замена объекта моего HashMap по одному?