Может и есть лишний код (не знаю как иначе переписать), но ведь вроде все условие выполняется. Почему не проходит тестирование? package com.javarush.test.level18.lesson03.task05;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

/* Сортировка байт
Ввести с консоли имя файла
Считать все байты из файла.
Не учитывая повторений - отсортировать их по байт-коду в возрастающем порядке.
Вывести на экран
Закрыть поток ввода-вывода

Пример байт входного файла
44 83 44

Пример вывода
44 83
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        Set<Integer> set = new HashSet<Integer>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        FileInputStream file = new FileInputStream(reader.readLine());

        while(file.available()>0)
        {
            set.add(file.read());
        }
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.addAll(set);
        Integer[] arr = new Integer[set.size()];

        for(int i=0; i<arrayList.size()-1;i++)
        {
            arr[i]=arrayList.get(i);
        }

        for(int i = arr.length-1 ; i > 0 ; i--)
        {
            for (int j = 0; j < i; j++)
            {

                if (arr[j] > arr[j + 1])
                {
                    int tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;
                }
            }
        }
        for (Integer x : arr)
        {
            System.out.print(x+" ");
        }
        reader.close();
        file.close();
    }
}

задан 19 Фев '16, 18:53

fatesha's gravatar image

fatesha
53117
одобрено: 12%


Вы берёте файл и всё из него записываете в множество. Потом создаёте лист и массив.

Как вы умудряетесь из пустого листа заполнить массив данными из множества мне не понятно..

Воспользуйтесь TreeSet и всё станет проще.

ссылка

опубликован 20 Фев '16, 02:19

%D0%97%D1%83%D0%B1%D1%80%D0%B8%D0%BB%D0%BA%D0%B8%D0%BD's gravatar image

Зубрилкин
10.8k513
одобрено: 41%

Пропустил.

Collections.sort() так проще.

(20 Фев '16, 02:35) Зубрилкин

не из пустого - 33 строка.

Но конструкция, конечно, та еще)

(20 Фев '16, 02:21) dandelionwine

советую использовать Collections.sort(). удобная штука

Set<Integer> set = new HashSet<Integer>();

ArrayList<Integer> aList = new ArrayList<>(set);
Collections.sort(aList);

for (Integer b: aList) {}
ссылка

опубликован 20 Фев '16, 02:23

binarycat's gravatar image

binarycat
1.9k29
одобрено: 30%

Ого, какая красивая конструкция!! Спасибо, все прошло <3.

(20 Фев '16, 14:14) fatesha

У вас в цикле массив не до конца заполняется - вы теряете последний элемент:

for(int i=0; i<arrayList.size()-1;i++)
        {
            arr[i]=arrayList.get(i);
        }
ссылка

опубликован 19 Фев '16, 19:06

dandelionwine's gravatar image

dandelionwine
11.5k18
одобрено: 53%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×3,808

Задан: 19 Фев '16, 18:53

Просмотров: 954 раз

Отредактирован: 20 Фев '16, 14:14