Как найти сумму и среднее значение массива
Короткий ответ
Arrays.stream(array).sum() складывает все элементы:
void main() {
int[] numbers = {4, 8, 15, 16, 23, 42};
IO.println(Arrays.stream(numbers).sum());
}Результат:
108Среднее
average() возвращает OptionalDouble — у пустого массива среднего нет:
void main() {
int[] numbers = {4, 8, 15, 16, 23, 42};
double average = Arrays.stream(numbers).average().orElse(0);
IO.println(average);
}Результат:
18.0Циклом
То же самое через цикл for-each:
void main() {
double[] prices = {9.99, 5.01, 15.0};
double total = 0;
for (double price : prices) {
total += price;
}
IO.println(total);
}Результат:
30.0Частая ошибка
Сумма большого количества int может не поместиться в int. Считайте в long:
void main() {
int[] big = {2_000_000_000, 2_000_000_000};
IO.println(Arrays.stream(big).sum());
IO.println(Arrays.stream(big).asLongStream().sum());
}Результат:
-294967296
4000000000Функции из этого ответа
- Arrays.stream() — Создаёт поток (stream) из массива — для сумм, фильтров и преобразований.
- IntStream.sum() — Складывает все числа потока.
- IntStream.average() — Вычисляет среднее арифметическое чисел потока.