In line 43, they key won't be removed from my hashMap - and I don't understand why?
Can someone explain why? :)
package com.codegym.task.task08.task0816;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
/*
Kind Emma and the summer holidays
*/
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("Stallone", df.parse("JUN 1 1980"));
map.put("Anita", df.parse("AUG 20 1990"));
map.put("Anders", df.parse("AUG 19 1990"));
map.put("Allan", df.parse("JUL 3 1993"));
map.put("Signe", df.parse("JAN 21 1961"));
map.put("Katrine", df.parse("JAN 18 1996"));
map.put("Henrik", df.parse("MAY 03 1961"));
map.put("MaryLou", df.parse("APR 21 1993"));
map.put("Munck", df.parse("AUG 14 1990"));
map.put("Sarah", df.parse("AUG 28 1989"));
return map;
}
public static void removeAllSummerPeople(HashMap<String, Date> map) throws ParseException {
DateFormat df = new SimpleDateFormat("MMMMM d", Locale.ENGLISH);
for (HashMap.Entry<String, Date> pair : map.entrySet()) {
Date date = pair.getValue();
String dateString = df.format(date);
if (dateString.contains("June") || dateString.contains("July") || dateString.contains("August")) {
map.remove(pair.getKey());
}
}
}
public static void main(String[] args) throws ParseException {
removeAllSummerPeople(createMap());
}
}