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

  • 5
  • Недоступна
Зинаида Васильевна — классный руководитель 7-Б класса какой-то там террианской школы, подробности не важны. А важно то, что она дарит подарки ученикам в дни рождения. Везет не всем: летние именинники — в пролёте по причине каникул. Пишем программу для Зинаиды: создаем словарь с фамилиями и датами рождения, удаляем из него людей, родившихся летом.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (220)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Михаил8 уровень, Одесса
суббота, 07:08
Да уж, логика действий ясна, но "ИДЕЯ" регулярно подчеркивает красным, мол что ты пишешь, идиот, так нельзя. Сидишь разбираешься в чем проблема, читаешь левые сайты, потом комменты, проверяешь,переделываешь и т.п. Времени уходит вагон, каждый день после работы по 2-3 часа, по выходным больше. На эту задачу суммарно часов 5 ушло - 2 вечера. А сколько еще таких задач было и будет? А потом читаешь истории успеха ДжаваРаш, где люди за 2 месяца берут 25+ уровень. Как!? Я уже больше месяца занимаюсь и 8 лвл. Видимо я дуб дерево
Яша8 уровень, Москва
суббота, 09:54
80% людей здесь такие же как ты, и лишь единицы тут либо вундеркинды, либо просто проходят на скорость (всё равно как, всё равно что, главное чтобы валидатор был зеленый), либо имели уже изначально порог вхождения выше (возможно опыт работы, углубленное изучения матанализу, алгоритмов и т. п. и используют данный сайт как повторение изученного или очень неплохо составленный задачник), так что то, что ты иногда видишь какие-то комментарии успешных людей - это единицы. за всеми не угонишься, смотри лишь на своё продвижение, чувствуй самого себя. и не забывай, что так или иначе, у многих тут и времени свободного больше, многим не приходится совмещать основную работу с перепрофилированием в программисты, у многих нет семей, детей и много еще чего. у всех разная жизнь, разные условия, разный порог. не парься, учись дальше, радуйся всему новому и все получится удачи : )
Михаил8 уровень, Одесса
позавчера, 20:28
Спасибо за доброе слово
Viktor 9 уровень
четверг, 16:45
пытаюсь проверить.. Не дает компилировать метод/Unhandled Exception.. вроде исключения не проходили?
Юлия11 уровень, Санкт-Петербург
четверг, 07:07
Отличная задача бля (ой, описалась - но очень в тему) для наращивания навыков стыривания чужого кода и доведения его до ума.
Yerzhan8 уровень
вчера, 17:59
Юлия, извини, но прочитал твой коммент и не смог не спросить на какую гласную ставить ударение? На вторую или третью гласную?
АртемGeek10 уровень, Москва
среда, 18:26
Не забудьте: -импортировать библиотеку -for each - не работает при одновременном переборе и удалении(надо делать через итератор) -месяца начинаются с 0 Задача если честно вынос мозга. Логика действий понятна. Не понятна реализация.
Георгий9 уровень, Львов
12 марта, 11:02
Мне кажется, я схожу с ума. Ниже код, который я написал. Он не проходит валидацию, но не в этом дело. Дело в том, что меняя имена в мапе, полностью изменяется результат работы программы. Попробуйте удалить первую букву в aStark. При том, что ни в каком варианте, данный Старк не удаляется, хотя родился летом. Мистика или я не знаю чего-то фундаментального про map. Код здесь не помещается, доступен по ссылке: https://ru.stackoverflow.com/questions/955446/%d0%9c%d0%b8%d1%81%d1%82%d0%b8%d0%ba%d0%b0-%d1%81-map%d0%be%d0%bc-%d0%b2-java
Георгий9 уровень, Львов
12 марта, 18:14
Там по ссылке выше мне ответили. Советую всем почитать у кого проблемы с этой задачей.
gelosx1 geloxs111 уровень
11 марта, 17:35
Можно проверить через регулярное выражение:
pair.getValue().toString().matches(".*(Ju|Au).*")
Сергей9 уровень
11 марта, 17:06
Пока не понял, что df.parse("JUNE....") возвращает Jun, а не JUN, валидация не проходила
Vladimir Kashin13 уровень, Москва
11 марта, 12:07
Бесит! Задачи на эти мапы реально хардовые! с 11 попытки!!! УХ Расскажу, как сделал: 1. В методе createMap() делаем 10 мэп путов:
map.put("Stallone", df.parse("JUNE 1 1980"));
        map.put("Stallonee", df.parse("JUNE 1 1989"));
        map.put("Stallon", df.parse("JUNE 1 1981"));
... и тд
//не забываем:
return map;
2. Далее, в методе removeAllSummerPeople создаём копию этого самого map, который мы получили извне ( он у нас в аргументе функции:
public static void removeAllSummerPeople(HashMap<String, Date> map)
) Создаём копию:
...
HashMap<String, Date> copy = new HashMap<String, Date>(map); // копия map
...
3) Выполняем быстрый for, используя условие:
if(pair.getValue().getMonth() > 4 && pair.getValue().getMonth()<8) //условие проверяем по копии (copy)
                    map.remove(pair.getKey()); // Значение уже удаляем из map
Как-то так...
Ilya Sergeev8 уровень, Санкт-Петербург
среда, 10:19
А копию делать зачем? И у меня что-то getMouth не работает.
Andrew8 уровень, Москва
вчера, 11:00
вроде потому что нельзя одновременно перебирать коллекцию циклом for-each и удалять из нее же. Поэтому надо делать или копию или через итератор. Перебираешь по копии - удаляешь из map
Vladimir Kashin13 уровень, Москва
11 марта, 11:15
Информация о SimpleDateFormat http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
Андрей Зуйков9 уровень, Санкт-Петербург
8 марта, 19:10
я вот наткнулся на такую штуку: если идти по MAP с помощью foreach, например так
for (Map.Entry<String,Date> entry: map.entrySet())
ну и искать нужные нам месяца и удалять эти записи, то почему-то проходит не весь MAP остаются записи которые, почему-то не попали на проверку. Вероятно,потому, что искал я по итератору цикла, а удалял напрямую из map по ключу в этом же цикле... В итоге решил через итератор и WHILE. Удаляйте с помощью итераторов!!!