Хорошо, я разобрался что, при использовании даты очень важно правильно писать название месяцев, и поэтому список может не генерироваться.
объясните пожалуйста в чём ошибка логики поиска месяца?
Я вытащил значение Date из коллекции copy, перекинул его в строку, и смотрю, встречается в строке нужный месяц или нет.
39 строку я уже переделал под:
map.remove(elem);
но всё равно не то. подскажите пожалуйста куда копать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 2014"));
map.put("Григорян", dateFormat.parse("JUNE 1 2012"));
map.put("Горбыль", dateFormat.parse("MARCH 1 2002"));
map.put("Сергеев", dateFormat.parse("APRIL 1 2010"));
map.put("Сторчевой", dateFormat.parse("AUGUST 1 2012"));
map.put("Иванчук", dateFormat.parse("JANUARY 1 2012"));
map.put("Леголас", dateFormat.parse("JULY 1 2012"));
map.put("Харитонов", dateFormat.parse("SEPTEMBER 1 2012"));
map.put("Хрюндель", dateFormat.parse("DECEMBER 1 2011"));
map.put("Лехаим", dateFormat.parse("FEBRUARY 1 2015"));
return map;
}
public static void removeAllSummerPeople(Map<String, Date> map) {
Map<String, Date> copy = new HashMap<>(map);
DateFormat dateFormat = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
Iterator<Map.Entry<String, Date>> iterator = copy.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<String, Date> elem = iterator.next();
Date spo = elem.getValue();
String date = dateFormat.format(spo);
if (date.contains("JUNE")|| date.contains("JULY")|| date.contains("AUGUST")){
map.remove(elem);
}
}
//for (String element: copy.keySet()
// ) {
// String dateString = dateFormat.format(element);
// if (dateString.equals("JUNE")||dateString.equals("JULY")||dateString.equals("AUGUST")){
// map.remove(element);
// }
}
// }
public static void main(String[] args) {
}
}