Нити и байты

  • 10
  • Недоступна
Читайте с консоли имена файлов, пока не будет введено слово "exit". Передайте имя файла в нить ReadThread. Нить ReadThread должна найти байт, который встречается в файле максимальное число раз, и добавить его в словарь resultMap, где параметр String - это имя файла, параметр Integer - это искомый ба
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (124)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Евгений24 уровень, Новосибирск
30 ноября, 12:01
Будьте внимательны! В задачке просят добавить в словарь символ, который чаще всего попадается, а не его количество повторений. Прогорел на этом пункте очень много раз :)
Артём 22 уровень, Санкт-Петербург
23 ноября, 09:43
КХМ-КХМ Пробелы(которые имеют код 32) тоже нужно считать. Вдруг кто тоже захочет их не считать
Serge Ve20 уровень, Москва
18 ноября, 17:38
Решал часа полтора, так как с прошлого уровня забыл, что нити запускаются командой start, а я запускал с помощью run. В итоге 10 попыток истратил)
Игорь20 уровень
19 ноября, 13:13
я на третьей опомнился=))))
Vadim Krant20 уровень, Москва
28 октября, 18:13
Задача отличная, хрен с ним что могут быть совпадающие байты в файле, задача учит вспоминать предыдущий материал. Например я очень давно работал с нитями, и разумеется про них уже забыл. Запуск нити осуществлял через run, совершенно забыв про то, что это обращение к методу а запуск нити всё же start. Видел в комментах чумовые примеры по реализации запуска и создания нити.
while (!(buffer = consoleReader.readLine()).equals("exit"))
 new ReadThread(buffer).start();
Михаил Морозов20 уровень, Маунтин-Вью
15 октября, 23:12
Прекрасный пример того, для чего нужны бизнес-аналитики. Для того, что бы задачи так не ставили. Что нужно сделать, если несколько байт встречаются одинаковое число раз?
PiligrimLazlo26 уровень, Санкт-Петербург
10 октября, 15:11
8 попыток, пока рекорд на данный момент. Сначала пытался находить максимально встречающийся байт, создавая массив чисел размером 256, где индекс - это код байта, а значение - число появлений в файле. Все работало, но не проходил пункт "Затем нити должны найти максимально встречающийся байт в своем файле и добавить его в словарь resultMap." В итоге сделал через создание второго ХэшМэп, где ключ - код байта, а значение - число появлений. Потом находил максимальное значение, и брал соответствующий ключ. Так сработало. Держу в курсе.
Nathan2217722 уровень, Санкт-Петербург
14 ноября, 19:47
Да почему вы все создаете по 256 байт???? 128 хватает с лихвой (по хорошему еще и первые 32 можно не обрабатывать так что еще меньше потому что в ASCII это не символы, не те символы с которыми мы работаем в данном контексте). Подумайте - вы занимаете 128 ячеек интами каждый из которых занимает 32 бита - итого вы занимаете места для 4096 нулей и единиц, которые вы бы могли использовать иначе, С КАЖДОЙ СОЗДАННОЙ НИТЬЮ в данном контексте. Совершенно не нужные вам. Мораль: сделайте себе одолжение, берите в привычку минимизировать засирание памяти. Это то что отличит окей проггера от хорошего проггера в последствии. Если хотите быть еще большими молодцами - учитесь не срать направо и налево переменными опять же во первых из соображений экономии памяти и тем самым уменьшаете вероятность обкекаться и устроить себе Deadlock.
Andry Max35 уровень, Минск
9 августа, 21:11
с 3 попытки, ну неплохо... первый раз провалился, т.к. не понял как же запустить несколько нитей, а надо было в цикле ввода. второй раз оказалось, что счетчик сбрасывал не в том месте)
Gagarin27 уровень, Санкт-Петербург
7 августа, 17:43
запустил нить в конструкторе, а не в мейне =.=
Андрей22 уровень, Минск
31 августа, 21:35
та же фигня =(
17 сентября, 12:20
это как то влияет на решение? сам я запустил в мэйне и задачка с 1 раза прошла, просто интересно
Gagarin27 уровень, Санкт-Петербург
18 сентября, 10:49
Скорее всего это влияет на валидатор)
Артем38 уровень, Москва
6 августа, 08:39
Валидатор не позволяет start() запихнуть в конструктор класса ReadThread
Иван Сапронов20 уровень
14 ноября, 04:33
Тоже попался на эту удочку... Минус две попытки на решение задачи. Вывод: перед отправкой задачи на валидацию ВСЕГДА читать комментарии, даже если вы железобетонно уверены, что ваш код идеален ))
Володимир Штаба31 уровень, Киев
28 июня, 20:56
НЕВЕРОЯТНО РЕШИЛ С ПЕРВОГО РАЗА КОНЕЧНО НАВОРОТИЛ 3 ЦИКЛА FOR НО РЕШИЛ