Мне непонятно пару моментов и прошу помощи в разъяснении. Во-первых, насколько я помню, нельзя одновременно перебирать элементы и удалять их из словаря, но я не ориентируюсь, как тогда нужно правильно переделать эту часть.
Во-вторых, когда я прописывал removeAllSummerPeople, return подсвечивался красным, потом я нажал Alt+Enter и подсвечиваться он перестал, но я так и не понял, почему это произошло и чего он хотел.
И в-третьих, я не понимаю, почему не выполняются два первых условия.
Может, вопрос глупый, но что-то эта задача совсем в ступор ввела.
P.S. пробовал тестировать и по результатам видел, что removeAllSummerPeople просто не срабатывал вообще.
package com.javarush.task.task08.task0816;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
/*
Добрая Зинаида и летние каникулы
*/
public class Solution {
public static HashMap<String, Date> createMap() throws ParseException {
DateFormat df = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
HashMap<String, Date> map = new HashMap<String, Date>();
map.put("Stallone", df.parse("JUNE 1 1980"));
map.put("Kea", df.parse("APRIL 15 1987"));
map.put("Kvyatkevich", df.parse("JANUARY 25 1995"));
map.put("Bas", df.parse("JULY 15 1977"));
map.put("Dan", df.parse("MAY 15 1987"));
map.put("Browm", df.parse("SEPTEMBER 15 1987"));
map.put("Ewq", df.parse("FEBRUARY 15 1987"));
map.put("Qwerty", df.parse("APRIL 10 1997"));
map.put("Asdf", df.parse("AUGUST 15 1987"));
map.put("Zxcv", df.parse("JUNE 15 1987"));
return map;
//напишите тут ваш код
}
public static HashMap<String, Date> removeAllSummerPeople(HashMap<String, Date> map){
for (HashMap.Entry<String, Date> entry : map.entrySet()) {
Date date = entry.getValue();
int mo = date.getMonth();
if (mo>=5 && mo<=7) map.remove(entry.getKey());
//напишите тут ваш код
}
return map;
}
public static void main(String[] args){
}
}