Как сложить числа из массива java
В Java есть несколько способов найти сумму элементов массива. Например, можно использовать Stream API:
class Calculator public static int sum(int[] numbers) // Преобразуем массив в стрим целых чисел, а затем получаем сумму этого потока return Arrays.stream(numbers).sum(); > > int[] numbers = 1, 2, 3>; Calculator.sum(numbers); // 6
Также можно использовать цикл, чтобы пройтись по всем элементам массива:
class Calculator public static int sum(int[] numbers) // Объявляем переменную для хранения суммы элементов int sum = 0; // Проходим по элементам массива и каждый к сумме for (int number: numbers) sum += number; > return sum; > > int[] numbers = 1, 2, 3>; Calculator.sum(numbers); // 6
Получить сумму всех элементов массива в Java 8 и выше
В этом посте мы обсудим, как получить сумму всех элементов массива в Java.
В Java не было встроенного метода для этой простой задачи, в отличие от многих других языков программирования, таких как std::accumulate в C++, array_sum() метод в PHP, Метод Enumerable.Sum (IEnumerable) в .NET Frameworkи т. д. До Java 8 единственным решением было перебирать заданный массив с помощью цикла for-each и накапливать сумму всех элементов в переменной. Этот подход демонстрируется здесь.
С введением Java 8 Stream мы можем легко получить сумму всех элементов массива, используя Stream.sum() метод. Чтобы получить поток элементов массива, мы можем использовать функцию Arrays.stream() метод. Этот метод перегружен для массивов типа int, double и long. Также у него есть перегруженные версии, что позволяет получить сумму элементов между указанными индексами массива.
Как создать метод нахождения суммы элементов массива в Java и вызывать его к различным массивам?
В задаче на подсчитывание времени обслуживания очереди из произвольного клиентов у N касс очередь задается массивом целых чисел int[] customers, где каждый его элемент customers[i] — это время обслуживания i-го клиента.
В процессе решения нужно было просуммировать элементы массива в случае, когда у нас N=1:
. > else if (n == 1) < for (int i = 0; i < customers.length; i++ ) < sum += customers[i]; >> . return sum;
Однако в ходе решения потребовалось находить суммы элементов еще у двух массивов — nCustomers и restOfCustomers.
Я создаю метод, который позволяет суммировать элементы произвольного массива:
public int sumOfArray(int ary[]) < int s = 0; for (int i = 0; i < ary.length; i++) < s += ary[i]; >return s; >
Как мне теперь синтаксически правильно вызывать его ко всем трем массивам в коде — customers, nCustomers и restOfCustomers?
- Вопрос задан более трёх лет назад
- 5221 просмотр
1 комментарий
Простой 1 комментарий
так если массивы одинакового типа, то какая разница какой подставлять. А если тип разный, можно этот метод сделать дженериком.
Решения вопроса 0
Ответы на вопрос 2
Java, Kotlin, Android Developer
Если я правильно понял и вам нужна сумма элементов трёх массивов, то:
int sumOfAll = sumOfArray(arr1) + sumOfArray(arr2) + sumOfArray(arr3)
Или можно создать метод с varargs, который будет считать сумму произвольного количества массивов:
public int sumOfArray(int[]. ary) < /// your code >
Или считайте через стримы:
int sumOfAll = IntStream.of(arr1).sum() + IntStream.of(arr2).sum() + IntStream.of(arr3).sum();
Ответ написан более трёх лет назад
Нравится 1 3 комментария
ti1 @ti1 Автор вопроса
Нет, суммировать три массива не нужно.
1) «Если элемент один, то зачем цикл?» — Когда работает одна касса — N=1 — тогда время, необходимое на обслуживание очереди, задаваемой, например, массивом [2, 3, 1, 5, 7] — это просто сумма элементов массива: 2+3+1+5+7=18.
2) В ходе решения задачи, когда число людей в очереди не превышает число работающих касс, я просто нахожу максимальный элемент массива customers:
> else if (customers.length customerMax) < customerMax = customers[i]; >> return customerMax; >
3) В случае, когда число людей в очереди больше, чем число работающих касс (customers.length > n && n > 1), мне нужно запустить счетчик и уменьшать на единицу все элементы массива nCustomers (это подошедшие к n касс n покупателей из очереди), при этом, как только какой-то из его элементов обнуляется, в следующей итерации я на его место ставлю первый элемент из массива остатка очереди restOfCustomers[0], а сам массив restOfCustomers сокращаю на этот элемент. И все это происходит пока сумма элементов в nCustomers не станет нулевой, а массив restOfCustomers не станет пустым — нулевой длины.
Как найти сумму элементов массива? Программа на Java
Сегодня мы рассмотрим программу для подсчета суммы элементов массива на Java. Рассмотрим 2 примера программы: первая будет подсчитывать сумму элементов уже инициализированного массива с определенным количеством элементов, а другая программа будет считать сумму элементов массива, введенного пользователем. Эта статья является частью раздела для начинающих Java программистов.
