Научитесь находить сумму и среднее значение чисел, хранящихся в массиве. Мы будем использовать Java Stream API и простой цикл for для нахождения этих значений.
Обратите внимание, что числа в Java представлены 8 примитивами, а именно: short, char, byte, boolean, int, float, long и double.
- Мы можем использовать IntStream для значений short, char, byte, boolean и int.
- Для длинных значений можно использовать LongStream.
- Мы используем DoubleStream для чисел с плавающей точкой, таких как float и double.
Когда мы передаем примитивные массивы в метод Arrays.stream(), то мы получаем любой тип потока, то есть IntStream, LongStream или DoubleStream.
Вышеуказанная информация необходима при получении потока из массива и использовании соответствующих методов для расчета агрегированных значений, таких как сумма и среднее значение.
1. Нахождение суммы элементов массива
Есть несколько способов получить сумму чисел, хранящихся в массиве.
- длинный поток.sum()
- длинный поток.summaryStatistics().sum()
- Итерация элементов с использованием цикла for.
Давайте рассмотрим пример обоих методов, использующих типы массивов int[] и Integer[]. Мы получим сумму в типе данных long или double в зависимости от типа потока, из которого мы получаем массив.
int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};Integer[] integerArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//1long sum = Arrays.stream(intArray).sum();//2long sum = Arrays.stream(integerArray).mapToInt(i -> i).sum();//3long sum = Arrays.stream(intArray).summaryStatistics().getSum();
Если мы хотим зациклить элемент, это можно сделать следующим образом.
long sum = 0;for(int value : intArray) {sum += value;}System.out.println(sum);
2. Нахождение среднего значения элементов массива
Нахождение среднего значения во многом похоже на нахождение суммы, как описано в предыдущем разделе. Мы можем вызвать метод stream.average() вместо sum().
Тип данных, используемый для хранения среднего значения, — double.
//1double average = Arrays.stream(intArray).average().orElse(Double.NaN);//2double average = Arrays.stream(intArray).summaryStatistics().getAverage();
3. Заключение
В этом коротком уроке мы научились использовать API потока для получения суммы и среднего значения элементов, хранящихся в массиве. Использование потоков обеспечивает дополнительные преимущества, такие как применение фильтрации к элементам потока без влияния на исходный массив.