Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

IntStream.boxed()

Превращает поток примитивов int в поток объектов Integer.

Доступно с: Java 8

Синтаксис

Stream<Integer> boxed()

Возвращаемое значение

Stream<Integer>Поток Integer с теми же значениями.

Примеры

Список чисел из диапазона:

void main() {
    List<Integer> list = IntStream.rangeClosed(1, 5).boxed().toList();
    IO.println(list);
}

Результат:

[1, 2, 3, 4, 5]

Массив int[] в отсортированное множество без повторов:

void main() {
    int[] scores = {5, 3, 5, 1};
    Set<Integer> unique = Arrays.stream(scores)
        .boxed()
        .collect(Collectors.toCollection(TreeSet::new));
    IO.println(unique);
}

Результат:

[1, 3, 5]

Примечания

У IntStream нет toList() и collect(Collectors...): коллекции хранят только объекты, поэтому сначала нужен boxed(). Такой же метод есть у LongStream и DoubleStream. Обратный переход — mapToInt(Integer::intValue). Если значения нужно ещё и преобразовать, вместо boxed().map(...) пишут mapToObj(...).

См. также

  • Stream.mapToInt() — Превращает поток объектов в поток чисел `int`.
  • IntStream.range() — Создаёт поток целых чисел из диапазона.
  • Arrays.stream() — Создаёт поток (stream) из массива — для сумм, фильтров и преобразований.
  • Stream.toList() — Собирает элементы потока в неизменяемый список.

В учебнике

  • flatMap и числовые потоки — flatMap и mapMulti для разворачивания вложенных данных, IntStream, LongStream и DoubleStream, переход между потоками через boxed и mapToObj, summaryStatistics.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.