Подскажите пожалуйста. Эта тема мне заходит ооочень трудно. Поясню свою логику:
1. Делаю перебор;
2. Присваиваю value значения даты, которая содержится в карте;
3. Вычленяю из даты месяц и присваиваю его month;
4. Проверяю значения месяца, чтобы они были равны номерам летних месяцев, соответственно удаляю данную пару.
Но последнее условие не проходит. Объясните, что я тут написал не так.
package com.javarush.task.task08.task0816;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/*
Добрая Зинаида и летние каникулы
*/
public class Solution {
public static Map<String, Date> createMap() throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
Map<String, Date> map = new HashMap<>();
map.put("Сталлоне", dateFormat.parse("MAY 1 2012"));
map.put("Рикардо", dateFormat.parse("JUNE 13 1987"));
map.put("Ван-Дамм", dateFormat.parse("JULY 11 1816"));
map.put("Чан", dateFormat.parse("MARCH 7 2000"));
map.put("Ли", dateFormat.parse("APRIL 9 1991"));
map.put("Шварц", dateFormat.parse("DECEMBER 30 1997"));
map.put("Лунгрен", dateFormat.parse("MARCH 23 1975"));
map.put("Ривз", dateFormat.parse("JANUARY 25 1966"));
map.put("Джонсон", dateFormat.parse("AUGUST 3 1849"));
map.put("Дизель", dateFormat.parse("APRIL 19 1983"));
return map;
}
public static void removeAllSummerPeople(Map<String, Date> map) {
/*Iterator<Map.Entry<String, Date>> it = map.entrySet().iterator();
while (it.hasNext()) {
Date value = map.getValue();
int month = value.getMonth();
if (month == 5||month == 6||month == 7) it.remove();
}*/
for (Map.Entry<String, Date> pair : map.entrySet()) {
Date value = pair.getValue();
int month = value.getMonth();
if (month == 5||month == 6||month == 7) map.remove(pair/*.getKey()*/);
}
//напишите тут ваш код
}
public static void main(String[] args) {
}
}