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

  • 5
  • Недоступна
Зинаида Васильевна — классный руководитель 7-Б класса какой-то там террианской школы, подробности не важны. А важно то, что она дарит подарки ученикам в дни рождения. Везет не всем: летние именинники — в пролёте по причине каникул. Пишем программу для Зинаиды: создаем словарь с фамилиями и датами рождения, удаляем из него людей, родившихся летом.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (274)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
NomakAnton8 уровень, Казань
3 часа назад
Как решил я: 1.Создаем map и вносим туда 10 записей(тут думаю все понятно,но на всякий):
map.put("Кузнецов", dateFormat.parse("JUNE 6 2012"));
2.В методе который отвечает за удаление подключаем итератор и запускаем цикл while(во второй лекции 8го уровня есть пример где показывается как пройтись по всей коллекции map) 3.в цикле создаю переменную int которая вытаскивает из value(значения)номер месяца:
int value = pair.getValue().getMonth();
4.Ставлю условие если эта переменная равна 5,6 или 7(нумерация летних месяцев(не забудьте что в Jave нумерация идет с 0)) 5.Ну и если они равны то удаляю эту пару:
iterator.remove();
PROFIT
Павел22 уровень, Минск
16 июля, 10:24
мне помогло: JavaRush Хороший сайт
Olha Pokotylo8 уровень, Киев
14 июля, 19:18
первая задача, которую я полностью списала, потому что не смогла разобраться вообще, как связаны устаревшие даты, почему формат ММММ, а в слове три буквы и многое другое =((
Павел22 уровень, Минск
16 июля, 10:23
Ольга, советую не списывать, а самой решать. Задачи, которые я не мог решить, я оставлял на потом и решил эту задачу только сегодня, будучи почти на 20 уровне. И смысл в том, что я понял решение, а от простого списывания ничего в голове не останется.
Павел22 уровень, Минск
16 июля, 10:28
а задачи в будущем завязаны на задачах которые были в прошлом и получается замкнутый круг.
Olha Pokotylo8 уровень, Киев
16 июля, 18:43
Вот уже на следующей я так же споткнулась и дальше списывать, конечно, бессмысленно. В этой я по готовому решению уже вроде разобралась, но глобально это не помогло, к сожалению. Если следующие задачи "следуют" из способности решить эту, то, конечно, смысла ее откладывать особенно нет, надо решать, а "курс" этому никак не помогает. Штош...
Павел22 уровень, Минск
16 июля, 19:31
со временем все устаканивается и начинаешь понимать то, что раньше не давалось. для себя решил, что лучше не спешить и решать с понимаем самому, чем постоянно подсматривать в чужие решения
Заколодяжный Виталий10 уровень, Киев
8 июля, 11:41
Не могу понять почему не срабатывает проверка...
Виктор8 уровень, Москва
2 июля, 10:18
Задача на Data (который судя по всем источникам не используется нигде). Решил для себя через Calendar)))
Максим16 уровень, Москва
11 июня, 07:14
Не ленитесь писать тест в main. Сразу много становится понятным. Отлично решается через pair.getValue().toString(). и потом уже стринги проверяем методом contains. НО! метод createMap() в реальности возвращает Jun, Jul, Aug. То есть contains должен искать именно эти аббревиатуры, а не то, что пишем при создании HashMap. Понял это только после того, как в main вытащил свой map в println.
Ivan9 уровень, Нижний Новгород
10 июля, 07:04
map ещё как-то особенно в main надо вытаскивать? что-то не получается на него просто так сослаться...
MartyMcAir16 уровень
10 июня, 20:29
Чтоб не юзать Deprecated методы из Date Создаем Calendar, в нем делаем setTime(d) - где d это getValue из Map'ы через ссылку Calendar делаем вызов метода get(Calendar.MONTH) - т.е. получаем номер месяца в int, полученное значение проверяем в if(..) ветвлении Лето это месяцы в диапазоне: 5-7
Александр Худяков10 уровень, Magnitogorsk
15 июня, 11:03
В ваше предложение еще неплохо бы дописать, что для корректной реализации потребуется использовать Iterator и его метод remove() для обхода ConcurrentModificationException, который возникает, если обход мапы будет осуществляться foreach с map.remove() в цикле.
Wladyslaw18 уровень
18 июня, 18:21
можно вместо 6,7,8 юзать Calendar.JUNE, Calendar.JULY, Calendar.AUGUST, что по сути тоже самое, но с этими константами код читабельней, как по мне.
Константин Петров16 уровень, Москва
10 июня, 11:12
public static void removeAllSummerPeople(HashMap<String, Date> map) {
        //напишите тут ваш код
        map.values().removeIf(item -> (item.getMonth() == 5 | item.getMonth() == 6 | item.getMonth() == 7));
    }
mr.sharkzzz17 уровень, Москва
8 июня, 12:08
Для решения помогла эта статья, второй вариант.