Создать словарь (Map) и занести в него десять записей по принципу: «фамилия» — «дата рождения».
Удалить из словаря всех людей, родившихся летом.
Требования:
1. Программа не должна выводить текст на экран.
2. Программа не должна считывать значения с клавиатуры.
3. Класс Solution должен содержать только три метода.
4. Метод createMap() должен создавать и возвращать словарь HashMap с типом элементов String, Date состоящий из 10 записей.
5. Метод removeAllSummerPeople() должен удалять из словаря всех людей, родившихся летом.
package com.javarush.task.task08.task0816;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/*
Добрая Зинаида и летние каникулы
*/
public class Solution {
public static HashMap<String, Date> createMap() {
HashMap<String, Date> map = new HashMap<>();
map.put("Stallone0", new Date(2000, 0, 1));
map.put("Stallone1", new Date(2000, 1, 1));
map.put("Stallone2", new Date(2000, 2, 1));
map.put("Stallone3", new Date(2000, 3, 1));
map.put("Stallone4", new Date(2000, 4, 1));
map.put("Stallone5", new Date(2000, 5, 1));
map.put("Stallone6", new Date(2000, 6, 1));
map.put("Stallone7", new Date(2000, 7, 1));
map.put("Stallone8", new Date(2000, 8, 1));
map.put("Stallone9", new Date(2000, 9, 1));
return map;
}
public static void removeAllSummerPeople(HashMap<String, Date> map) {
// map.entrySet().removeIf(pair -> pair.getValue().getMonth() > 4 && pair.getValue().getMonth() < 8);
Iterator<Map.Entry<String, Date>> iterator = map.entrySet().iterator();
int month;
Map.Entry<String, Date> pair;
while (iterator.hasNext()) {
pair = iterator.next();
month = pair.getValue().getMonth();
if (month > 4 && month < 8) {
iterator.remove();
}
}
}
public static void main(String[] args) {
}
}
Данный код прошел проверку, но прошу обратить внимание на закомментированную строку №29. Изначально вместо строк №30-40 я пытался сдать именно с ней, но почему то проверка не проходила. Может ли мне кто объяснить, в чем может быть причина? Сейчас у меня есть две теории:
1. Возможно проблема с условием "3. Класс Solution должен содержать только три метода.". Означает ли это, что использование в классе лямбда-выражений эквивалентно созданию private методов класса?
2. Есть скрытая проверка, неописанная в условиях задачи.