Часто встречается задача, когда требуется преобразовать поток целых чисел, представленный в виде IntStream
, в список List<Integer>
. Например, есть поток чисел, полученный в результате каких-то вычислений или операций, и требуется сохранить эти числа в структуру данных списка для дальнейшего использования.
В документации IntStream
действительно есть метод toArray()
, который позволяет преобразовать поток в массив, но не предоставляет прямого способа преобразования в список.
Однако, существует способ преобразовать IntStream
в List<Integer>
, используя методы stream()
и collect()
.
Сначала требуется преобразовать IntStream
в Stream<Integer>
, так как List
может хранить только объекты, а IntStream
представляет собой поток примитивных типов. Это можно сделать с помощью метода boxed()
.
Далее, с помощью метода collect()
, поток можно собрать в список, используя Collectors.toList()
.
Вот пример кода:
import java.util.stream.*; import java.util.List; public class Main { public static void main(String[] args) { IntStream intStream = IntStream.range(1, 5); List<Integer> list = intStream.boxed().collect(Collectors.toList()); System.out.println(list); // выведет [1, 2, 3, 4] } }
В этом примере создается поток чисел от 1 до 4 с помощью метода IntStream.range()
, затем этот поток преобразуется в список с помощью методов boxed()
и collect(Collectors.toList())
. Результат выводится на экран.
Таким образом, можно преобразовать IntStream
в List<Integer>
в Java 8.
Добавить комментарий