Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
23 Май 2023
2 мин
505

Как преобразовать IntStream в List в Java 8

Часто встречается задача, когда требуется преобразовать поток целых чисел, представленный в виде IntStream, в список List<Integer>. Например, есть поток чисел,

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

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

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