Ввод с клавиатуры с помощью Stream в массив, Java

Подскажите, возможен ли ввод с клавиатуры в массив с помощью потоков Stream или класса Arrays? Желательно одной строчкой


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

Автор решения: Andrew Bystrov

в java 11 можно сделать примерно так

Scanner scanner = new Scanner(System.in);
List<Long> list = Stream.generate(scanner::nextLine) // Генерируем стрим, в котором значение будут те, что ввели в консоль. 
        .takeWhile(s -> !s.equals("exit"))           // Останавливаемся тогда, когда ввели `exit`
        .map(Long::valueOf)                          // Превращаем в Long ( ну или как вам надо там)
        .collect(Collectors.toList());               // Собираем в лист
System.out.println(list);

Если хотите собирать определенно число значений из терминала, то вместо takeWhile можно использовать limit(X), где X - количество элементов

→ Ссылка