Сортировка байт

  • 10
  • Недоступна
Ввести с консоли имя файла. Считать все байты из файла. Не учитывая повторений - отсортировать их по байт-коду в возрастающем порядке. Вывести на экран. Закрыть поток ввода-вывода. Пример байт входного файла: 44 83 44 Пример вывода: 44 83
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (245)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алексей 22 уровень, Зима
10 января, 10:31
Хотел с умничать.))) Решил через такую конструкцию:
BufferedReader line = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));
Но валидатор, естественно, не пропустил!
Ivan Zelenkov 20 уровень
10 января, 22:18
А вот так?
FileInputStream inputStream = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
Алексей 22 уровень, Зима
11 января, 01:27
Уже не узнаем. Решил обычным способом
jimaltair 18 уровень, Калининград
14 января, 08:52
Принимает. Засовываем всю эту конструкцию в try с ресурсами и получается красота=)
Alexander Lapshin 18 уровень, Череповец
4 января, 13:41
по моему у меня довольно уникальное решение xD заполнение как в предыдущих задачах, там ничего нового, но тут нам предлагают использовать TreeSet который вроде бы суперкрутой и все такое, но на деле оказалось что все не так просто, сначала я не мог получить значение из сета, все перепробовал: и другие сеты и попытки конвертировать в массивы различной сложности, в итоге пришел к такому доисторическому решению:
....ридеры, стримы, переменные, стандартное начало таска.....
        TreeSet<Integer> ns = new TreeSet();
....происходит заполнение сета....
        fis.close();
        String trick = ns.toString();
        trick = trick.replaceAll(",","");
        System.out.println(trick.substring(1,trick.length()-1));
p.s. решается через enchanced for
for (int i : ns){
            System.out.println(i + " ");
        }
Ksenia 24 уровень, Киев
30 ноября 2020, 11:40
ссылочка на TreeSet импорт подсказывает, что нужно использовать
Nikolai Android Developer в in galaxy far away
27 ноября 2020, 13:06
При решении этой задачи ознакомил себя со Stream API. Подробно расписано на Хабре. Вкратце, делаем два листа (я отсортировал первый на всякий случай), затем: collection.stream() - мы переводим нашу коллекцию в поток данных (стрим) distinct().collect(Collectors.toList()) - без дубликатов делаем из стрима обратно коллекцию
List<Integer> listWithoutDuplicates = listWithDuplicates.stream()
                .distinct()
                .collect(Collectors.toList());
Regina Kazan Start-up Founder / AT QA в jivys.com
25 ноября 2020, 21:14
боялась задачи, потому что не совсем понимаю сортировку именно в моменты решения. в теории то все легко. но оказалось, что стоило просто погуглить как убрать повторения через хэшсет. а потом просто открыть ту старую лекцию про коллекции - а именно ту строчку, что мы коллекшенс.сорт(наш массив). и все... вывод опять как в прошлой задаче...
Сергей 19 уровень, Калининград
7 декабря 2020, 09:36
TreeSet кстати сам все сортирует автоматом. Очень удобная вещь
Андрей Software Developer
16 ноября 2020, 14:58
1) Добавляем из файла сразу в TreeSet (повторения искать не надо, все сразу отсортировано по возрастанию) 2) Выводим результат 3) PROFIT!
Е К 20 уровень, Краснодар
17 ноября 2020, 07:51
Протестировал, код psvm сжался до 8 строк) Спасибо за ещё один варик решения. Не знал, что TreeSet игнорит одинаковые значения...
Максим Дудин 19 уровень, Калининград
28 декабря 2020, 15:57
Вот же....... он их сам убирает, получается напрасно я проверял if(!set.contains(data))set.add(data); Thanks... ладно будем знать....
Е К 20 уровень, Краснодар
16 ноября 2020, 11:32
Сделал сначала с помощью HashMap ( kye = byte from file, anyKindValue). Потом отсоритировал map.keyset() и вывел значения. По опыту прошлых задач усвоено - ключ в Мап всегда уникален, поэтому все повторяющиеся байты будут перезаписаны, и в Мапе не будет повторений. Потом полез сюда и переделал HashMap на TreeMap. Получилось ещё красивее. ТрииМап сам всё сортирует, таким образом исключаем из программы блок сортировки.
Mikhail Kuragin 19 уровень, Красноярск
7 ноября 2020, 18:30
Решил через List. В конце отсортировал и вывел все значения, которые не повторяются. Изи.
Mikhail Kuragin 19 уровень, Красноярск
7 ноября 2020, 18:35
Хотя сейчас попробовал уже после проверки сделать, как люди ниже написали через TreeSet - в разы быстрее получилось - профит!
Ice 18 уровень, Одесса
31 октября 2020, 19:26
Легкая задача, банально подчистил код предущей и вуаля.
Виталий 31 уровень, Санкт-Петербург
31 октября 2020, 11:56
Как сделал я: -считал имя файла через try-with-resourses, -добавил все байты в лист -создал TreeSet на основе листа -очистил лист -добавил данные из TreeSet в лист -вывел через foreach лист, каждый элемент через пробел.