Encodera

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

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

Справочник Java

IntStream.range()

Создаёт поток целых чисел из диапазона.

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

Синтаксис

static IntStream range(int startInclusive, int endExclusive)
static IntStream rangeClosed(int startInclusive, int endInclusive)

Параметры

ПараметрТипОписание
startInclusiveintПервое число.
endExclusiveintГраница: у `range()` не входит, у `rangeClosed()` входит.

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

IntStreamПоток последовательных целых чисел.

Примеры

Полуоткрытый и закрытый диапазон:

void main() {
    IO.println(Arrays.toString(IntStream.range(0, 5).toArray()));
    IO.println(IntStream.rangeClosed(1, 5).sum());
}

Результат:

[0, 1, 2, 3, 4]
15

Индексы вместо цикла for:

void main() {
    List<String> names = List.of("Anna", "Oleg", "Ivan");
    IntStream.range(0, names.size())
        .mapToObj(i -> (i + 1) + ". " + names.get(i))
        .forEach(IO::println);
}

Результат:

1. Anna
2. Oleg
3. Ivan

Примечания

IntStream хранит примитивы int без упаковки и умеет sum(), average(), max(). Чтобы вернуться к потоку объектов, используйте boxed() или mapToObj(). Для long есть LongStream.range().

См. также

  • IntStream.sum() — Складывает все числа потока.
  • Stream.iterate() — Создаёт поток, где каждый элемент вычисляется из предыдущего.
  • Stream.mapToInt() — Превращает поток объектов в поток чисел `int`.

Вопросы и ответы по теме

В учебнике

  • Что такое поток данных — Stream API в Java — источник, промежуточные и завершающие операции, создание потоков, ленивые вычисления и одноразовость потока.

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

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