Не уверен в логике данного stream
У меня есть данный стрим, я хотел чтобы вы подтвердили, что я правильно принцип его работы.
return groupedTransfers.entrySet().stream()
.filter(entry -> isEnabled(entry.getKey(), entry.getValue()))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue, (x, y) -> y, LinkedHashMap::new));
Я понимаю, что стрим фильтруется по функции isEnabled
Далее идет collect, и тут уже я не уверен, берется каждое значение key и value, к ним применяется merge функция (x, y) -> y, это значит что дубликаты key будут убраны для каждого уникального value? Как в целом работает merge в данном случае?
В итоге все записывается в новый LinkedHashMap.
Ответы (1 шт):
(x, y) -> y
Данная функция отвечает за то какое значение будет присвоено ключу в случае если в стриме будут дубликаты.
Например добавилась пара
а:б
и следом есть пара
а:с
(x, y) -> y
Данная функция указывает на то что в конечной мапе должно остаться значение принадлежащее второй паре то есть
а:с