Java: Создание массива через консоль без определения количества элементов массива

Ответ скорее всего на поверхности, но я сильно новичек и сильно туплю. Есть ли возможность через консоль вводить целочисленные значения которые автоматически формируют массив и самостоятельно определяют его размер?

Прохожу курс от EPAM. Застрял на задачке: "Перейдите в класс Average и напишите программу, которая считывает последовательность целочисленных значений из стандартного ввода и находит среднее значение.

Подробности:

Вы должны считывать значения последовательности, пока следующее не станет 0. Нулевое значение означает конец входной последовательности и не является ее частью. Последовательность гарантированно содержит хотя бы одно значение. Среднее значение также является целым числом. Используйте целочисленные операции."

Возможно я неправильно понимаю условия задачи, но считываться значения должны через Scanner(клонировал репо, условия установлены). Тесты Maven дают разное количество вводных значений на каждом тесте. Поэтому, думаю не верным будет написание каждого отдельного int value = scanner.nextInt(); И сгруппировать их в массив потом, если честно я тоже не знаю как(есть ли такая возможность).

Прогуглил полтора дня результат только с изначальным созданием количества вводимых в массив значений, но с таким условием тесты сразу выдают ошибку, т.к. идет ввод значений а не размера массива.

циклы от условий напишу, среднее высчитаю, но не могу начать.

Если кто то может - объясните пожалуйста...


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

Автор решения: Isem

Если я правильно понял условие то тут не надо сохранять все значения.
Просто сохраняйте сумму и количество значений. Когда последовательность закончилась выведите сумму деленную на количество.
Пример который вычисляет среднее арифметическое:

import java.util.Scanner;
public class Main
{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int value = scanner.nextInt();
        int sum = 0;
        int count = 0;
        while(value != 0){
            sum += value;
            count++;
            value = scanner.nextInt();
        }
        System.out.println(sum/count);
    }
}
→ Ссылка