Как найти среднее арифметическое java

Аватар пользователя Maksim Litvinov
Maksim Litvinov
31 мая 2022

Средним арифметическим множества чисел называют сумму всех этих чисел, разделенных на общее количество слагаемых. В Java найти среднее арифметическое можно при помощи цикла или используя стримы. Рассмотрим пример с циклом:

class App {
    public static double average(int[] numbers) {
        var length = numbers.length;
        var sum = 0;

        // Находим сумму всех чисел
        for (double num : numbers) {
            sum += num;
        }
        // И делим её на количество слагаемых
        return sum / length;
    }
}
App.average(new int[] {1, 2, 3}); // 2.0

Также можно использовать стримы. Рассмотрим вариант на стримах

import java.util.Arrays;

class App {
    public static double average(int[] numbers) {
        Arrays.stream(numbers).average().getAsDouble();
    }
}
App.average(new int[] {1, 2, 3}); // 2.0
0 0
Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
26 августа 2024

Чтобы найти среднее арифметическое нужно сложить все числа и разделить сумму на их количество. Приведу примеры как это можно реализовать в коде в Java:

public static double average(int[] numbers) {
    if (numbers.length == 0) return 0;

    int sum = 0;
    for (int number : numbers) {
        sum += number;
    }
    return (double) sum / numbers.length;
}

В случае коллекции чисел код не сильно будет отличаться:

import java.util.List;

public static double average(List<Integer> numbers) {
    if (numbers.isEmpty()) return 0;

    int sum = 0;
    for (int number : numbers) {
        sum += number;
    }
    return (double) sum / numbers.size();
}

В Jave 8+ можно использовать современные стримы:

import java.util.Arrays;

public static double average(int[] numbers) {
    return Arrays.stream(numbers).average().orElse(0);
}

Помните о возможности переполнения при работе с большими числами. В таких случаях можно использовать тип long для суммы или применять специальные алгоритмы для вычисления среднего значения.

0 0
Познакомьтесь с основами Java бесплатно