Экономим время

  • 16
  • Недоступна
1. Создай Producer и Consumer (См. комментарий к методу main). 2. Создай методы toString, equals и hashCode в классе ShareItem. Для этого в IntelliJ IDEA в теле класса ShareItem выполни: 2.1. Alt+Enter -> toString() -> Enter. 2.2. Alt+Enter -> equals() and hashCode() -> click all 'Next'-s. 2.3. Реал
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (44)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Constantine31 уровень, Москва
вторник, 11:20
2.3. Реализацию методов toString(), equals() и hashCode() оставь такими, какими их сгенерировала IntelliJ IDEA. Пришлось переписывать toString.
Алексей31 уровень
2 апреля, 11:48
WARNING!!! System.out.printf() это не System.out.format()... Я не единственный кто попался, на это, так что, оставлю это тут... Да, и System.out.format("Элемент '%s' добавлен%n", shareItem.getDescription()) - это не то что надо. ShareItem-%d - вот нужный зверь!
S3R3N1TY33 уровень, Санкт-Петербург
29 марта, 22:38
Не знаю, решил с первой, прервал потоки и вышел в catch через return; Понравится System.out.format. Условие в задаче написано немного невпопад, чтобы вывод соответствовал нужно самому правильно расположить, например Sleep и вывод System.out.format("Consumer в ожидании!%n") у меня осуществляется в цикле, после каждого нового добавления в очередь.
Vitaly Khan36 уровень
26 марта, 12:13
а меня в ступор ввело условие Перед каждым добавлением выведи фразу "Элемент 'ShareItem-N' добавлен". ведь факт, что элемент добавлен наступает только после окончания работы метода offer()! offer() на то и придуман, что добавление может не произойти и никакого exception не выбросится.
Алексей36 уровень, Москва
7 февраля, 06:51
Валидатор слишком придирчив к формату вывода информации. Даже если использован System.out.format, даже если результат такой же как в output.txt.
Gogogo34 уровень
5 февраля, 09:04
Никак не мог заставить Produser прерваться. Отправил прямо так, думал таймаут поймаю. Приняло!
Vitaly Khan36 уровень
26 марта, 12:09
скорее всего, потому что при обработке InterruptedException ничего не делали. а надо вручную делать выход из метода.
Serj41 уровень, Киев
22 ноября 2018, 21:17
Приняло неправильное решение: сделал слип в бесконечном цикле Consumer и так и сдал. Потом уже понял, для чего нужен метод take()
Павел41 уровень, Санкт-Петербург
4 сентября 2018, 12:29
Сделал в методе run() у Producer цикл while с проверкой isInterrupted и счётчик через AtomicInteger - получил таймаут. Заменил на цикл for и проверку if isInterrupted внутри - приняло.
Алексей Самуйлов31 уровень, Минск
9 августа 2018, 10:56
Во 2 пункте вместо Alt+Enter должно быть Alt+Ins.
cyprusScorpion41 уровень
23 апреля 2018, 12:39
Наводим курсор на имя нового класса и успеваем нажать Alt+Enter до того, как всплыла подсказка, тогда выпадет меню, где найдём строку Create Class, а иначе (по подсказке) выпадает меню с опциями импорта классов.