Метод void removeAllSummerPeople(Map<String, Date> map) удаляет вообще всех. Не оставляет ни одного, что очень странно, ведь есть же условие. Помогите, пожалуйста
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("Somewhoa", dateFormat.parse("JULY 20 2013"));
map.put("Somewhos", dateFormat.parse("AUGUST 20 2013"));
map.put("Somewhod", dateFormat.parse("JUNE 20 2013"));
map.put("Somewhof", dateFormat.parse("JULY 20 2013"));
map.put("Somewhog", dateFormat.parse("JULY 20 2013"));
map.put("Somewhoh", dateFormat.parse("JULY 20 2013"));
map.put("Somewhjo", dateFormat.parse("JULY 20 2013"));
map.put("Somewhok", dateFormat.parse("JULY 20 2013"));
map.put("Somewhol", dateFormat.parse("JULY 20 2013"));
return map;
}
public static void removeAllSummerPeople(Map<String, Date> map) {
for (Map.Entry<String, Date> pair:
map.entrySet()) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH);
String date = dateFormat.format(pair.getValue());
if (date.contains("JULY") || date.contains("AUGUST") || date.contains("JUNE"))
{
map.remove(pair.getKey());
}
}
}
public static void main(String[] args) throws Exception {
}
}
Посмотрите на вывод даты
Вам нужно сменить регист названия месяца в блоке
но потом Вы столкнетесь с ConcurrentModificationException.
Поэтому лучше использовать итератор.
Удачи :)