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.