Как найти среднее арифметическое 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

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки