Видел одно объяснение, что нужно создать список ключей на удаление, но не понимаю, как воспользоваться этим методом, ведь потом списком ключей опять через цикл нужно проходить по Мапе и удалять значения(то есть, опять цикл).
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("MARCH 3 1988"));
map.put("Сильверстоун", dateFormat.parse("JUNE 3 2000"));
map.put("Свёлов", dateFormat.parse("AUGUST 9 1998"));
map.put("Никитин", dateFormat.parse("JANUARY 2 1991"));
map.put("Шифер", dateFormat.parse("SEPTEMBER 3 2009"));
map.put("Хайек", dateFormat.parse("JUNE 7 2015"));
map.put("Клуни", dateFormat.parse("OCTOBER 1 2005"));
map.put("Драко", dateFormat.parse("JULY 6 2007"));
map.put("Иванов", dateFormat.parse("APRIL 4 2005"));
//напишите тут ваш код
return map;
}
public static void removeAllSummerPeople(Map<String, Date> map) throws Exception {
//напишите тут ваш код
DateFormat dateFormat = new SimpleDateFormat("MMMMM", Locale.ENGLISH);
Date june = dateFormat.parse("JUNE");
Date july = dateFormat.parse("JULY");
Date august = dateFormat.parse("AUGUST");
for (Map.Entry<String, Date> pair : map.entrySet()){
String key = pair.getKey();
Date value = pair.getValue();
if (value.equals(june) || value.equals(july) || value.equals(august) ){
map.remove(key);
}
}
}
public static void main(String[] args) {
}
}