Подтвердить что ты не робот

Как преобразовать Java 8 IntStream в список?

Я смотрю документы для IntStream, и я вижу метод toArray, но не могу перейти непосредственно к List<Integer>

Конечно, есть способ конвертировать a Stream в List?

4b9b3361

Ответ 1

IntStream.boxed превращает a IntStream в Stream<Integer>, который вы можете затем collect в список:

theIntStream.boxed().collect(Collectors.toList())

Ответ 2

Вы также можете использовать mapToObj() в потоке, который принимает IntFunction и возвращает объектно-ориентированный поток, состоящий из результатов применения данной функции к элементам этого потока.

List<Integer> intList = myIntStream.mapToObj(i->i).collect(Collectors.toList());

Ответ 3

Вы можете использовать примитивные коллекции, доступные в Eclipse Collections и избегать бокса.

MutableIntList list = 
    IntStream.range(1, 5)
    .collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll);

Примечание. Я участвую в коллекциях Eclipse.