Часто встречается задача, когда требуется преобразовать поток целых чисел, представленный в виде 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.
Перейти в телеграм, чтобы получить результаты теста



Забрать
Добавить комментарий