В HashMap параметр key уникальный, и если в него записывать фамилию, а потом добавлять с такой же фамилией еще одно значение, то старый key перезапишется новым. В моем случае
surnameNameMap.put("Ара", "Ася");
surnameNameMap.put("Ара", "Миша");
"Ара Ася" уже не будет существовать, а будет "Ара Миша". Как считать фамилии в таком случае, понятия не имею.
Натолкните на мысль, пожалуйста. package com.javarush.task.task08.task0815;
import java.util.*;
/*
Перепись населения
*/
public class Solution {
public static HashMap<String, String> createMap() {
//напишите тут ваш код
HashMap<String, String> surnameNameMap = new HashMap<String, String>();
surnameNameMap.put("Ара", "Ася");
surnameNameMap.put("Ара", "Миша");
surnameNameMap.put("Бар", "Петя");
surnameNameMap.put("Сар", "Гриша");
surnameNameMap.put("Кан", "Соня");
surnameNameMap.put("Ван", "Ваня");
surnameNameMap.put("Хоп", "Соня");
surnameNameMap.put("Хей", "Дина");
surnameNameMap.put("Лала", "Буся");
surnameNameMap.put("Лей", "Ася");
return surnameNameMap;
}
public static int getCountTheSameFirstName(HashMap<String, String> map, String name) {
//напишите тут ваш код
Iterator<Map.Entry<String, String>> iteratorSurname = map.entrySet().iterator();
ArrayList<String> listSurname = new ArrayList<String>();
while (iteratorSurname.hasNext()) {
Map.Entry<String, String> surnameRepeats = iteratorSurname.next();
listSurname.add(surnameRepeats.getKey());
}
int surnameCounter = 0;
for (int i = 0; i < listSurname.size(); i++) {
for (int j = 0; j < listSurname.size(); j++) {
if (i == j) {
continue;
}
if (listSurname.get(i).equals(listSurname.get(j))) {
surnameCounter++;
}
}
}
return surnameCounter;
}
public static int getCountTheSameLastName(HashMap<String, String> map, String lastName) {
//напишите тут ваш код
Iterator<Map.Entry<String, String>> iteratorName = map.entrySet().iterator();
ArrayList<String> listName = new ArrayList<String>();
while (iteratorName.hasNext()) {
Map.Entry<String, String> nameRepeats = iteratorName.next();
listName.add(nameRepeats.getValue());
}
int nameCounter = 0;
for (int i = 0; i < listName.size(); i++) {
for (int j = 0; j < listName.size(); j++) {
if (i == j) {
continue;
}
if (listName.get(i).equals(listName.get(j))) {
nameCounter++;
}
}
}
return nameCounter;
}
public static void main(String[] args) {
}
}