Друзья, вопрос такой не очевидный.
Дабы проверить результат работы кода, дописываю в main кусочек с выводом на экран.
Но строка ниже ни в какую не хочет валидироваться. И в голову совершенно ни одной мысли не идет о том, что необходимо включить в эти гребанные скобки (map - не проходит). Помогите, пожалуйста.
HashMap<String, Date> map = removeAllSummerPeople();
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;
/*
Добрая Зинаида и летние каникулы
*/
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("Uliana", df.parse("JUNE 15 2011") );
map.put("Dima", df.parse("JULY 22 1987") );
map.put("Nastya", df.parse("OCTOBER 23 1984") );
map.put("Mom", df.parse("SEPTEMBER 18 1957") );
map.put("Dad", df.parse("APRIL 10 1956") );
map.put("Anna", df.parse("SEPTEMBER 2 1977") );
map.put("Nestor", df.parse("FEBRUARY 2 2003") );
map.put("Natalya", df.parse("DECEMBER 1 1965") );
map.put("Igor", df.parse("JUNE 19 1960") );
return (HashMap<String, Date>) map;
}
public static HashMap<String, Date> removeAllSummerPeople(HashMap<String, Date> map) {
//напишите тут ваш код
for (Date i: map.values()){
int a = i.getMonth();
if (a == 6 || a == 7 || a == 8) map.values().remove(i);
;}
return map;
}
public static void main(String[] args) {
HashMap<String, Date> map = removeAllSummerPeople();
System.out.println(map);
}
}
Anastasia Kunitsyna
18 уровень
Проблема с Зинаидой
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
1 октября 2018, 09:32
или просто
+1
Anastasia Kunitsyna
1 октября 2018, 09:49
Спасибо, валидатор предложил расшириться в main до throws ParseException.
Я ж не против, но теперь на вот этот код:
public static void main(String[] args) throws ParseException {
HashMap<String, Date> map = createMap();
removeAllSummerPeople(map);
System.out.println(map);
}
выдает такую ошибку
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1442)
at java.util.HashMap$ValueIterator.next(HashMap.java:1471)
at com.javarush.task.task08.task0816.Solution.removeAllSummerPeople(Solution.java:36)
at com.javarush.task.task08.task0816.Solution.main(Solution.java:44)
Я в печальке. Не надо так, Зинаида...
0
--------Master
1 октября 2018, 09:52
А это уже другой косяк: нельзя одновременно перебирать коллекцию циклом for-each и удалять из нее же. Используй или копию словаря, или методы итератора
+1
Anastasia Kunitsyna
1 октября 2018, 09:55
Спасибо огромное!!!!!! Я что-то и не подумала, что это уже в основном коде ошибка.
0
--------Master
1 октября 2018, 10:03
Ну так об этом же прямым текстом написано: at com.javarush.task.task08.task0816.Solution.removeAllSummerPeople(Solution.java:36) - 36 строка, метод removeAllSummerPeople
0