Знайдіть суму та середнє значення в масиві Java

1. Вступ

У цьому короткому посібнику ми розглянемо, як ми можемо обчислити суму та середнє в масиві, використовуючи як стандартні цикли Java, так і Stream API.

2. Знайдіть суму елементів масиву

2.1. Сума за допомогою циклу For

Для того, щоб знайти суму всіх елементів у масиві, ми можемо просто виконати ітерацію масиву та додати кожен елемент до суми, що накопичуєтьсязмінна.

Це дуже просто починається з суми 0 і додаємо кожен елемент масиву по ходу:

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

2.2. Сума за допомогою API Java Stream

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

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

Важливо знати, що метод sum () підтримує лише потоки примітивного типу.

Якщо ми хочемо використати потік для вкладеного значення Integer , спочатку потрібно перетворити потік у IntStream за допомогою методу mapToInt .

Після цього ми можемо застосувати метод sum () до нашого нещодавно перетвореного IntStream :

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

Ви можете прочитати набагато більше про Stream 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 . Для того, щоб отримати точне середнє, ми перші лита суму в два рази .
  2. Java Array має поле довжини, в якому зберігається кількість елементів у масиві.

3.2. Середнє значення за допомогою API Java Stream

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

IntStream.average () повертає OptionalDouble, який може не містити значення і який потребує спеціальної обробки.

Докладніше про Optionals читайте в цій статті та про клас OptionalDouble у Документації Java 8.

4. Висновок

У цій статті ми дослідили, як знайти суму / середнє значення елементів масиву int .

Як завжди, код доступний на Github.