Arrays.stream()
Создаёт поток (stream) из массива — для сумм, фильтров и преобразований.
Доступно с: Java 8
Синтаксис
static IntStream stream(int[] array)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| array | int[], T[], … | Массив. Есть вариант с диапазоном (startInclusive, endExclusive). |
Возвращаемое значение
IntStream / LongStream / DoubleStream / Stream<T>Для int[] — IntStream, для массива объектов — Stream<T>.
Примеры
Сумма, среднее и максимум:
void main() {
int[] scores = {72, 95, 88, 61};
IO.println(Arrays.stream(scores).sum());
IO.println(Arrays.stream(scores).average().orElse(0));
IO.println(Arrays.stream(scores).max().getAsInt());
}Результат:
316
79.0
95Массив объектов — фильтр и преобразование:
void main() {
String[] words = {"java", "is", "fun"};
List<String> result = Arrays.stream(words)
.filter(w -> w.length() > 2)
.map(String::toUpperCase)
.toList();
IO.println(result);
}Результат:
[JAVA, FUN]Примечания
Поток из int[] — это IntStream со своими методами sum(), average(), max(). average() и max() возвращают OptionalDouble/OptionalInt, потому что у пустого массива их нет. Чтобы получить List<Integer>, вызовите .boxed().toList().
См. также
- Arrays.asList() — Возвращает список фиксированного размера, который работает поверх массива.
- Math.max() — Возвращает большее из двух чисел.
- Arrays.toString() — Возвращает содержимое массива в виде строки [1, 2, 3].
Вопросы и ответы по теме
В учебнике
- Класс Arrays — Утилиты класса java.util.Arrays: toString, sort, fill, copyOf, copyOfRange, equals и binarySearch.