Объясните, пожалуйста, как работают containsKey и containsValue?
Добавил sout для проверки, если ввести любое имя и фамилию из Map, то всегда выводит 10 и 10, почему?
package com.javarush.task.task08.task0815;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Перепись населения
*/
public class Solution {
public static Map<String, String> createMap() {
Map<String, String> people = new HashMap<>();
people.put("Иванов", "Александр");
people.put("Степанов", "Сергей");
people.put("Сидоров", "Антон");
people.put("Самохвалов", "Владимир");
people.put("Попов", "Иван");
people.put("Черепанов", "Федор");
people.put("Васильев", "Антон");
people.put("Смирнов", "Иван");
people.put("Лебедев", "Данила");
people.put("Петров", "Иван");
return people;
}
public static int getCountTheSameFirstName(Map<String, String> map, String name) {
int countName = 0;
for (int i = 0; i < map.size(); i++) {
if (map.containsValue(name)) {
countName++;
}
}
return countName;
}
public static int getCountTheSameLastName(Map<String, String> map, String lastName) {
int countLastName = 0;
for (int i = 0; i < map.size(); i++) {
if (map.containsKey(lastName)) {
countLastName++;
}
}
return countLastName;
}
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println(getCountTheSameFirstName(createMap(), reader.readLine()));
System.out.println(getCountTheSameLastName(createMap(), reader.readLine()));
}
}