Рубрики
Без рубрики

Найти сумму и среднее значение в массиве Java

В этом кратком руководстве мы рассмотрим, как мы можем вычислить сумму и среднее значение в массиве, используя как стандартные циклы Java, так и потоковый API.

Автор оригинала: baeldung.

1. введение

В этом кратком руководстве мы рассмотрим, как мы можем вычислить сумму и среднее значение в массиве, используя как стандартные циклы Java, так и API Stream .

2. Найдите сумму элементов массива

2.1. Сумма с использованием цикла For

Чтобы найти сумму всех элементов в массиве, мы можем просто перебрать массив и добавить каждый элемент в sum аккумулирующую | переменную.

Это очень просто начинается с sum 0 и добавляет каждый элемент в массив по мере продвижения:

public static int findSumWithoutUsingStream(int[] array) {
    int sum = 0;
    for (int value : array) {
        sum += value;
    }
    return sum;
}

2.2. Суммирование с помощью API Java Stream

Мы можем использовать API потока для достижения того же результата:

public static int findSumUsingStream(int[] array) {
    return Arrays.stream(array).sum();
}

Важно знать, что метод sum() поддерживает только потоки примитивного типа .

Если мы хотим использовать поток на упакованном целочисленном значении, мы должны сначала преобразовать поток в IntStream с помощью метода mapToInt .

После этого мы можем применить метод sum() к нашему недавно преобразованному IntStream :

public static int findSumUsingStream(Integer[] array) {
    return Arrays.stream(array)
      .mapToInt(Integer::intValue)
      .sum();
}

Вы можете прочитать гораздо больше о потоковом API здесь .

3. Найдите среднее значение в массиве Java

3.1. Среднее значение без API потока

Как только мы узнаем, как вычислить сумму элементов массива, найти среднее значение довольно легко – как Среднее значение элементов/Количество элементов :

public static double findAverageWithoutUsingStream(int[] array) {
    int sum = findSumWithoutUsingStream(array);
    return (double) sum / array.length;
}

Примечания :

  1. Деление int на другое int возвращает результат int . Чтобы получить точное среднее значение, мы сначала приведем sum к double .
  2. Java Array имеет поле length , в котором хранится количество элементов в массиве.

3.2. Среднее значение с использованием API Java Stream

public static double findAverageUsingStream(int[] array) {
    return Arrays.stream(array).average().orElse(Double.NaN);
}

IntStream.average() возвращает Необязательный Double , который может не содержать значения и требует специальной обработки.

Подробнее о Options в этой статье и о Необязательном классе Double в документации Java 8 .

4. Заключение

В этой статье мы рассмотрели, как найти сумму/среднее значение элементов массива int .

Как всегда, код доступен на Github .