тот, что закомментирован - мой, не эквивалент ли он слизанному с комментариев следующему решению? что не так?
package com.javarush.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;
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("Stallone", df.parse("JULY 6 1946"));
map.put("Schwarzenegger", df.parse("JULY 30 1947"));
map.put("Lundgren", df.parse("NOVEMBER 3 1957"));
map.put("Van Damme", df.parse("OCTOBER 18 1960"));
map.put("Norris", df.parse("MARCH 10 1940"));
map.put("Gibson", df.parse("JANUARY 3 1956"));
map.put("Willis", df.parse("MARCH 19 1955"));
map.put("Lee", df.parse("NOVEMBER 27 1940"));
map.put("Chan", df.parse("APRIL 7 1954"));
map.put("Seagal", df.parse("APRIL 10 1952"));
removeAllSummerPeople(map);
return map;
}
public static void removeAllSummerPeople(HashMap<String, Date> map) {
// HashMap<String, Date> copy = map;
//
// for (HashMap.Entry<String, Date> pair : copy.entrySet()) {
// if (pair.getValue().getMonth() > 4 && pair.getValue().getMonth() < 8) {
// map.entrySet().remove(pair.getKey());
// }
// }
// Это был мой не работающий код
map.entrySet().removeIf(pair -> pair.getValue().getMonth() > 4 & pair.getValue().getMonth() < 8);
// Чужой распрекрасный работающий код
}
public static void main(String[] args) throws ParseException {
HashMap<String, Date> map = createMap();
}
}
}
package com.javarush.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;
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("Stallone", df.parse("JUNE 1 1980"));
map.put("Jakie", df.parse("SEPTEMBER 13 1970"));
map.put("Wild", df.parse("JULY 6 1977"));
map.put("Shraiber", df.parse("DECEMBER 23 1981"));
map.put("Yots", df.parse("OCTOBER 18 1985"));
map.put("Hall", df.parse("MAY 15 1982"));
map.put("Shwartz", df.parse("NOVEMBER 11 1969"));
map.put("LG", df.parse("JULY 1 1970"));
map.put("Crypt", df.parse("AUGUST 2 1971"));
map.put("Vemont", df.parse("SEPTEMBER 3 1972"));
return map;
}
public static void removeAllSummerPeople(HashMap<String, Date> map) throws ParseException{
HashMap<String, Date> copy = map;
for (HashMap.Entry<String, Date> pair : copy.entrySet()) {
if (pair.getValue().getMonth() > 4 && pair.getValue().getMonth() < 8){
String s = pair.getKey();
map.entrySet().remove(s);
}
}
// map.entrySet().removeIf(pair -> pair.getValue().getMonth() > 4 & pair.getValue().getMonth() < 8);
}
public static void main(String[] args) throws ParseException {
HashMap<String, Date> map = createMap();
removeAllSummerPeople(map);
}
}