Самые частые байты

  • 10
  • Недоступна
Ввести с консоли имя файла. Найти байт или байты с максимальным количеством повторов. Вывести их на экран через пробел. Закрыть поток ввода-вывода.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (137)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Voffka18 уровень, Киев
вчера, 15:02
жесткач. Пришлось посмотреть на
map.forEach
из 8 джавы. Удобнее, чем было до этого.
map.forEach((key, value) -> {
            if (value >= finalCount) {
                System.out.print(key + " ");
            }
        });
где finalCount = самое большое значение Collections.frequency
Вадим18 уровень, Новосибирск
пятница, 18:58
Максимальное и более двух это одно и то же???
Alexander Cherkaev22 уровень
15 января, 22:29
Тем кого напрягает условие рапечать в одну строку из коллекции результатов, может пригодится этот метод: конвертим массив значений в массив строк и джойним их через пробел, можно сразу в консоль
String resultString = results.stream().map(Object::toString).collect(Collectors.joining(" "));
System.out.println(resultString);
Вадим19 уровень, Одесса
9 января, 20:43
вообще бы хотелось от авторов еще рекомендаций, использовать всю мощь Java (коллекции и т.д.) или ограничиться базовыми элементами, стандартный массив и все :)
Yuliya Malykh27 уровень
18 декабря 2018, 08:32
Решила так: 1. Сначала все считанные байты заносим в ArrayList; 2. Затем создаем HashMap, куда заносим в ключи список из ArrayList, а в значения количество повторов (Collections.frequency); 3. Находим максимальное значение; 4. Пробегаем по значениям мапы, если значение равно максимальному значению, то System.out.print(ключ + " ");
Prokofieva19 уровень, Харьков
3 января, 17:36
спасибо, ваш комент помог
Dmitry Deryuga20 уровень
13 декабря 2018, 20:40
Последний пробел убирать не надо...
Игорёк Потылёк19 уровень, Санкт-Петербург
12 декабря 2018, 00:40
В четвёртом требовании орфографическая ошибка.
Regina40 уровень, Киев
12 декабря 2018, 10:28
Благодарим за внимательность. Исправим.
Alexey Polyakov20 уровень
7 декабря 2018, 21:39
Долго и мучительно, но справился с первого раза. Не знаю, может вариант не очень, но использовал:
Collections.frequency(list, element);
Vitaly Khan35 уровень
5 декабря 2018, 03:19
в варианте с map можно такой короткий вариант использовать
while ((i = fis.read()) != -1)
    map.put(i, map.getOrDefault(i, 0) + 1);
но вариант с массивом new bytes[256] - действительно быстрее и проще.
Артём 22 уровень, Санкт-Петербург
12 ноября 2018, 06:42
Помню как в школе забил на эту задачу, а тут она меня меня нагнала и я уже не смог её пропустить. Всем советую её решить самостоятельно и без читерских, хоть и эффективных в плане простоты, коллекций.