Как найти суму элементов массива которые большие за среднее арифметическое того же массива

Как найти среднее арифметическое элементов массива я понятие имею:

int n [] = {5, 10, 15, 20, -50, 80, -35, 60, 30};
double sum = 0;
for (int x: n) {
    sum += x;
}
System.out.print(sum/n.length);

но как найти суму элементов массива которые большие за среднее арифметическое если поиск ср. арифм. числа будет осуществляться выше показанным способом?


Ответы (1 шт):

Автор решения: Nowhere Man

С использованием Stream API можно решить так:

int[] arr = {5, 10, 15, 20, -50, 80, -35, 60, 30};
double avg = Arrays.stream(arr).average().getAsDouble();
int sumOverAvg = Arrays.stream(arr).filter(n -> n > avg).sum();

System.out.println(avg);
System.out.println(sumOverAvg);
15.0
190

Аналогичное решение с циклом и условием, в котором элементы массива будут сопоставляться с вычисленным средним значением, тривиально.

→ Ссылка