Запускаю на проверку, элементы в коллекции до вызова метода removeAllSummerPeople() совпадают с элементами коллекции после вызова этого метода. Почему элементы не удалились?
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.time.*;
import java.util.Map;


/*
Добрая Зинаида и летние каникулы
*/

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("a", df.parse("JUNE 1 1980"));
        map.put("b", df.parse("AUGUST 1 1222"));
        map.put("c", df.parse("JULY 1 1222"));
        map.put("d", df.parse("JUNE 2 1222"));
        map.put("e", df.parse("JULY 15 12"));
        map.put("f", df.parse("AUGUST 31 122"));
        map.put("g", df.parse("SEPTEMBER 1 1222"));
        map.put("h", df.parse("MARCH 1 1222"));
        map.put("i", df.parse("DECEMBER 1 1222"));
        map.put("j", df.parse("MAY 1 1222"));

        return map;//напишите тут ваш код
    }

    public static HashMap<String, Date> removeAllSummerPeople(HashMap<String, Date> map) throws Exception {
        for (Map.Entry<String, Date> pair : map.entrySet()) {
            Date date = pair.getValue();
            LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

            if ( (localDate.getMonthValue() > 5) & (localDate.getMonthValue() < 9) ) {
                map.entrySet().remove(pair.getKey());
            }
        }
        return map;
    }

    public static void main(String[] args)  throws Exception {
        HashMap<String, Date> map = createMap();

        removeAllSummerPeople(map);

        for (Map.Entry<String, Date> pair : map.entrySet()) {
            System.out.println(pair);
        }
    }
}