Я создаю карту, которая (ключ, значение) будет (имя, адрес) в моем объекте Person:
Map<String, String> myMap = persons.stream.collect(Collector.toMap(person.getName(), person.getAddress(), (address1, address2) -> address1));
В ситуации с дублированием ключа я хотел бы пропустить, чтобы добавить второй адрес на карту, и хотел бы также записать имя. Пропустить дублирующий адрес, который я могу сделать, уже используя mergeFunction, но для того, чтобы зарегистрировать имя, которое мне нужно, в этой функции mergeFunction person, что-то вроде:
(address1, address2) -> {
System.out.println("duplicate "+person.name() + " is found!");
return address1;
}
Я застреваю, передавая объект person этой функции слияния.