Не уверен в логике данного 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 шт):

Автор решения: Andrei Hincu

(x, y) -> y
Данная функция отвечает за то какое значение будет присвоено ключу в случае если в стриме будут дубликаты. Например добавилась пара а:б
и следом есть пара а:с
(x, y) -> y
Данная функция указывает на то что в конечной мапе должно остаться значение принадлежащее второй паре то есть а:с

→ Ссылка