У меня есть поток, который берет список объектов и создает карту, группируя их по идентификатору и считая повторения для каждого элемента.
Однако, прежде чем закрыть поток и вернуть карту, мне нужно проверить, все ли идентификаторы (ключи) с другой карты (которая у меня уже есть) присутствуют в новой, если нет, я должен добавить их со значением по умолчанию 0.
Важно выполнить такую операцию в том же потоке, поскольку я пытаюсь научиться этому и действительно хочу сделать код максимально компактным и читабельным.
Ниже приведена первая часть кода, теперь мне нужно проверить, какие идентификаторы с другой карты отсутствуют в новой созданной, и добавить их со значением 0.
return bookings.stream()
.collect(Collectors.groupingBy(a -> a.getID(), Collectors.counting()));
РЕДАКТИРОВАТЬ:
Чтобы уточнить, это то, что мне нужно сделать, но я бы хотел выполнить все операции, указанные ниже в исходном потоке.
Map<Integer,Long> res = bookings.stream()
.collect(Collectors.groupingBy(a -> a.getID(), Collectors.counting()));
map2.keySet().stream().forEach(r -> res.putIfAbsent(r,0L));
return res;