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; }
Примітки :
- Поділ int на інший int повертає результат int . Для того, щоб отримати точне середнє, ми перші лита суму в два рази .
- 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.