Всем привет. Я сам с трудом понимаю, что делает этот код, но вразумительного варианта, как в методе createPeopleList() вернуть Map <String, String> с совпадающими ключами фамилиями я так и не нашел. Может я неверно понял ТЗ и делаю что-то не то.
package com.javarush.task.task08.task0821;
import java.util.HashMap;
import java.util.Map;
/*
Однофамильцы и тёзки
*/
public class Solution {
public static void main(String[] args) {
Map<String, String> map = createPeopleList();
printPeopleList(map);
}
public static Map<String, String> createPeopleList() {
HashMap<String, String> names = new HashMap<String, String>();
HashMap<String, String> dnames = new HashMap<String, String>();
names.put("Иванов", "Вася");
names.put("Петров", "Гена");
names.put("Сидоров", "Лёша");
names.put("Антонов", "Вадим");
names.put("Вадомов", "Антон");
names.put("Хохлов", "Дима");
names.put("Греков", "Ваня");
names.put("Симонов", "Никита");
dnames.put("Антонов", "Денис");
dnames.put("Николаев", "Лёша");
HashMap<String, String> map = new HashMap<>(names);
for (Map.Entry<String, String> e : dnames.entrySet())
map.merge(e.getKey(), e.getValue(), String::concat);
dnames.forEach((k, v) -> map.merge(k, v, String::concat));
return map;
}
public static void printPeopleList(Map<String, String> map) {
for (Map.Entry<String, String> s : map.entrySet()) {
System.out.println(s.getKey() + " " + s.getValue());
}
}
}