Почему вводится в массиве при сортировке только 3 числа при вводе с клавиатуры пяти?

Ввожу с клавиатуры 5 чисел, но при сортировке массива первые 2 — это нули. В чем проблема?

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

int[] count = new int[5];

for(int i = 0; i < count.length; i++) {
    count[i] = Integer.parseInt(reader.readLine());
    Arrays.sort(count, 0, 5);
}

Ответы (1 шт):

Автор решения: Имя Фамилия

Вы сортируете пять раз: каждый раз, когда вводите новое число. Сортировать нужно один раз после цикла for.

for(int i = 0; i < count.length; i++)
    count[i] = Integer.parseInt(reader.readLine());
Arrays.sort(count, 0, 5);

Также я бы не рекомендовал использовать BufferedReader в вашем случае, его стоит использовать при работе с большим количеством входных данных. Для пользовательского ввода есть гораздо более удобный класс Scanner. Вдобавок, чтобы ввести число в вашей программе, необходимо нажимать Enter после каждого ввода числа. Обычно входные данные можно разделять пробелами. Приведу пример того, как это можно бы сделать с BufferedReader и со Scanner:

for(int i = 0; i < count.length;) {
    String s = reader.readLine();
    String[] ss = s.split("\\s+");
    for (int j = 0; j < ss.length && i < count.length; j++, i++)
        count[i] = Integer.parseInt(ss[j]);
}
for(int i = 0; i < count.length; i++)
    count[i] = scanner.nextInt();
→ Ссылка