- Массивы
- Содержание
- Объявление массива
- Пример
- Создание массива
- Пример
- Работа с массивами
- Пример
- Цикл foreach
- Пример
- Передача массива в метод
- Возврат массива из метода
- Методы для массива
- Пример 1: создание, объявление переменных, определение (выделение памяти) и инициализация массива
- Пример 2: длина массива
- Пример 3: максимальный элемент массива
- Пример 4: минимальный элемент массива
- Пример 5: сумма массива
- Пример 6: вывод массива
- Пример 7: вывод четных и нечетных элементов массива
- Пример 8: вывод элементов массива с четным и нечетным индексом
- Как вы находите сумму всех чисел в массиве в Java?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
- Ответ 17
- Ответ 18
- Ответ 19
- Ответ 20
- Ответ 21
- Ответ 22
- Ответ 23
- Ответ 24
- Ответ 25
- Ответ 26
- Нахождение суммы и среднего значения в массиве Java
- Как найти сумму всех чисел в массиве в Java?
Массивы
Содержание
Массивы в Java — это структура данных, которая хранит упорядоченные коллекции фиксированного размера элементов нужного типа. В Java массив используется для хранения коллекции данных, но часто бывает полезно думать о массиве как о совокупности переменных одного типа.
Вместо объявления отдельных переменных, таких как number0, number1, . и number99, Вы объявляете одну переменную массива, например, numbers и используете numbers[0], numbers[1], . и numbers[99], для отображения отдельных переменных.
Данная статья ознакомит Вас как в Java объявить массив переменных, создать и обрабатывать массив с помощью индексированных переменных.
Объявление массива
Чтобы использовать массив в программе, необходимо объявить переменную для ссылки на массив, и Вы должны указать тип массива, который может ссылаться на переменную. Синтаксис для объявления переменной массива:
Примечание: стиль dataType[] arrayRefVar является предпочтительным. Стиль dataType arrayRefVar[] происходит из языка C/C++ и был принят в Java для C/C++-программистов.
Пример
Следующие фрагменты кода примеры использования данного синтаксиса:
Создание массива
В Java создать массив можно с помощью оператора new с помощью следующего синтаксиса:
Вышеуказанное объявление делает две вещи:
- Создает массив, используя new dataType[arraySize];
- Ссылка на недавно созданный массив присваивается переменной arrayRefVar.
Объявление переменной, создание и присвоение переменной ссылки массива могут быть объединены в одном операторе, как показано ниже:
В качестве альтернативы массивы в Java можно создавать следующим образом:
Элементы массива доступны через индекс. Отсчет индексов ведется от 0; то есть они начинают от 0 и до arrayRefVar.length-1.
Пример
Следующий оператор объявляет массив переменных myList, создает массив из 10 элементов типа double и присваивает ссылку myList:
Изображение отображает массив myList. Здесь myList имеет десять значений double и индексы от 0 до 9.
Работа с массивами
При работе с элементами массива, часто используют цикл for или цикл foreach потому, что все элементы имеют одинаковый тип и известный размер.
Пример
Полный пример, показывающий, как создавать, инициализировать и обработать массив:
Получим следующий результат:
Цикл foreach
JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет последовательно пройти весь массив без использования индекса переменной.
Пример
Следующий код отображает все элементы в массиве myList:
Получим следующий результат:
Передача массива в метод
Также как можно передать значение примитивного типа в метод, можно также передать массив в метод. Например, следующий метод отображает элементы в int массиве:
Его можно вызвать путем передачи массива. Например, следующий оператор вызывает метод printArray для отображения 3, 1, 2, 6, 4 и 2:
Возврат массива из метода
Метод может также возвращать массив. Например, метод, показанный ниже, возвращает массив, который является реверсирование другого массива:
Методы для массива
Класс java.util.Arrays содержит различные статические методы для поиска, сортировки, сравнения и заполнения элементов массива. Методы перегружаются для всех примитивных типов.
№ | Описание |
1 | public static int binarySearch(Object[] a, Object key) Ищет заданный массив объектов (byte, int, double, и т.д.) для указанного значения, используя алгоритм двоичного поиска. Массив должен быть отсортирован до выполнения этого вызова. Это возвращает индекс ключа поиска, если он содержится в списке; в противном случае (-(точка вставки + 1). |
2 | public static boolean equals(long[] a, long[] a2) Возвращает значение true, если два указанных массивах равны друг другу. Два массива считаются равными, если оба массива содержат одинаковое количество элементов, и все соответствующие пары элементов в двух массивах равны. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
3 | public static void fill(int[] a, int val) Присваивает определенное значение int к каждому элементу указанного целочисленного массива. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
4 | public static void sort(Object[] a) Этот метод сортировки сортирует указанный массив объектов в порядке возрастания, в соответствии с естественным порядком его элементов. Такой же метод может быть использован всеми другими примитивными типами данных (byte, short, int и т.д.). |
Пример 1: создание, объявление переменных, определение (выделение памяти) и инициализация массива
В качестве примера возьмем тип данных int. Вы же можете использовать любой другой тип данных.
Пример 2: длина массива
Узнать размер массива в Java можно с помощью метода length(). Данный метод позволяет определить размерность массива.
Получим следующий результат:
Пример 3: максимальный элемент массива
Простые способы для того, чтобы найти максимальное число в массиве в Java. Сперва воспользуемся методом Math.max().
Получим следующий результат:
Ещё один пример нахождения максимального числа в массиве в Java. Здесь мы не будем использовать какие-либо методы.
Получим следующий результат:
Пример 4: минимальный элемент массива
Написанный ниже код практически ничем не отличается от кода, описанного в примере 3. Он в точности наоборот, просто здесь мы ищем минимальное число в массиве в Java. В первом способе воспользуемся методом Math.min().
Получим следующий результат:
Ещё один пример нахождения максимального числа в массиве в Java. Здесь мы не будем использовать какие-либо методы.
Получим следующий результат:
Пример 5: сумма массива
В этом примере рассмотрим как получить сумму элементов массива в Java.
Получим следующий результат:
А в этом примере используем улучшенный цикл for, чтобы найти сумму массива.
Получим следующий результат:
Пример 6: вывод массива
В данном примере рассмотрим как вывести массив на экран в Java.
Получим следующий результат:
Пример 7: вывод четных и нечетных элементов массива
В примере показано как вывести четные и нечетных элементы массива в Java.
Получим следующий результат:
Пример 8: вывод элементов массива с четным и нечетным индексом
В примере показано как вывести на экран элементы массива с четным и нечетным индексом.
Получим следующий результат:
Источник
Как вы находите сумму всех чисел в массиве в Java?
У меня возникла проблема с поиском суммы всех целых чисел в массиве в Java. Я не могу найти полезный метод в классе Math для этого.
ОТВЕТЫ
Ответ 1
В java-8 вы можете использовать потоки:
Это в упаковке java.util.stream
Ответ 2
Если вы используете Java 8, класс Arrays предоставляет метод stream(int[] array) , который возвращает последовательный IntStream с указанным int массив. Он также был перегружен для массивов double и long .
Он также предоставляет метод stream(int[] array, int startInclusive, int endExclusive) , который позволяет вам взять указанный диапазон массива (что может быть полезно):
Наконец, он может принимать массив типа T . Таким образом, вы можете, например, иметь String , который содержит числа в качестве входных данных, и если вы хотите их суммировать, просто сделайте:
Ответ 3
Это одна из тех простых вещей, которая не существует (AFAIK) в стандартном Java API. Достаточно легко написать свой собственный.
Другие ответы прекрасно, но здесь один с некоторыми для каждого синтаксического сахара.
Кроме того, пример суммирования массива — это показанный в спецификации языка Java 7. Пример: Раздел 10.4 — Доступ к массиву.
Ответ 4
Вы не можете. У других языков есть несколько методов для этого, например array_sum() в PHP, но Java нет.
Ответ 5
В Apache Math: есть StatUtils.sum(double[] arr)
Ответ 6
Единственное, что я хотел бы добавить к предыдущим решениям, это то, что я бы использовал длинный, чтобы накопить общее количество, чтобы избежать переполнения значения.
Ответ 7
Ответ 8
Код:
Выход:
Объяснение:
В Java 8 вы можете использовать концепцию сокращения, чтобы выполнить добавление.
Ответ 9
IMHO функция sum будет казаться хорошей возможностью расширить класс Arrays, где заполняются, сортируются, просматриваются, копируются и равны в реальном времени. В javadocs есть много удобных методов, поэтому справедливый вопрос при переносе Fortran в java, чтобы спросить, прежде чем запускать наш собственный вспомогательный метод. Просматривайте огромный индекс javadoc для «sum», «add» и любого другого ключевого слова, о котором вы могли бы подумать. Возможно, вы подозреваете, что кто-то уже сделал это для примитивных типов int, float, double, Integer, Float, Double? Независимо от того, насколько просто, всегда хорошо проверять. Держите код как можно более простым и не изобретайте велосипед.
Ответ 10
Ответ 11
Мне нравится этот метод лично. Мой стиль кода немного странный.
Довольно проста в использовании в коде:
Ответ 12
Я использую это:
Ответ 13
Вам нужно сворачивать самостоятельно.
Вы начинаете с общего количества 0. Затем вы учитываете для каждого целого числа в массиве, добавляете его к сумме. Тогда, когда вы находитесь вне целых чисел, у вас есть сумма.
Если не было целых чисел, то сумма равна 0.
Ответ 14
Из этого упражнения можно извлечь две вещи:
Вам нужно как-то перебирать элементы массива — вы можете сделать это с циклом for или while. Вам нужно сохранить результат суммирования в аккумуляторе. Для этого вам нужно создать переменную.
Ответ 15
Вы можете сделать код более удобным:
Ответ 16
Ответ 17
В библиотеке underscore-java есть метод sum().
Ответ 18
Для такой вещи нет «метода в математическом классе». Его не похоже на его функцию квадратного корня или что-то в этом роде.
Вам просто нужно иметь переменную для суммы и цикла через массив, добавляя каждое значение, которое вы найдете в сумме.
Ответ 19
Ответ 20
Мы можем использовать определенную пользователем функцию. Сначала инициализировать переменную суммы, равную нулю. Затем пересечь массив и добавить элемент с суммой. Затем обновите переменную суммы.
Ответ 21
Используйте приведенную ниже логику:
Ответ 22
Ответ 23
Немного удивлен, увидев, что ни один из приведенных выше ответов не считает, что это может быть в несколько раз быстрее при использовании пула потоков. Здесь parallel использует пул потоков fork-join и автоматически разбивает поток на несколько частей и запускает их параллельно, а затем объединяет. Если вы просто помните следующую строку кода, вы можете использовать ее во многих местах.
Таким образом, награда за самый быстрый короткий и сладкий код достается —
Допустим, вы хотите сделать sum of squares , затем Arrays.stream(nums).parallel(). map (x-> x * x).reduce(0, (a, b) → a + b). Идея в том, что вы все еще можете выполнить уменьшение без карты.
Ответ 24
Ответ 25
Ответ 26
В соответствии с Java 8 стало доступно использование лямбда-выражений.
Источник
Нахождение суммы и среднего значения в массиве Java
В этом кратком руководстве мы рассмотрим, как вычислить сумму и среднее значение в массиве Java, используя стандартные циклы.
Чтобы найти сумму всех элементов в массиве, мы можем просто перебрать массив и добавить каждый элемент к суммирующей переменной.
Это очень просто:
или вычисляем сумму используя индексы:
Можно использовать Stream API для достижения того же результата:
Важно знать, что метод sum() поддерживает примитивные типы.
Если мы хотим использовать целочисленные значения, сначала нужно преобразовать поток в IntStream, используя mapToInt метод. После этого применить метод sum() к нашему недавно преобразованному IntStream:
Найти среднее значение элементов массива Java довольно легко. Напомним, что среднее = сумма чисел/количество чисел.
Примечание: деление int на int возвращает результат int. Джава массив имеет поле length, в котором хранится количество элементов.
Если подсчитывать через Java Stream API, то код умещается в одну строчку:
IntStream.average () возвращает OptionalDouble, который может не содержать значения и требует специальной обработки.
Чтобы узнать больше об OptionalDouble class, читайте документацию по Java 8.
Исходный код можно скачать тут.
Средняя оценка / 5. Количество голосов:
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Источник
Как найти сумму всех чисел в массиве в Java?
У меня проблема с поиском суммы всех целых чисел в массиве в Java. Я не могу найти Math для этого в классе какой-либо полезный метод .
В java-8 вы можете использовать потоки:
Это в пакете java.util.stream
Если вы используете Java 8, Arrays класс предоставляет stream(int[] array) метод, который возвращает последовательность IntStream с указанным int массивом. Он также был перегружен double и long массивы.
Он также предоставляет метод, stream(int[] array, int startInclusive, int endExclusive) который позволяет вам взять указанный диапазон массива (что может быть полезно):
Наконец, он может принимать массив типа T . Таким образом, вы можете, например, иметь a, String который содержит числа в качестве входных данных, и если вы хотите их суммировать, просто выполните:
Это одна из тех простых вещей, которых нет (AFAIK) в стандартном Java API. Достаточно легко написать свой собственный.
Другие ответы прекрасны, но вот один с синтаксическим сахаром для каждого.
Кроме того, пример суммирования массивов даже показан в Спецификации языка Java 7 . Пример взят из Раздела 10.4 — Доступ к массиву .
Вы не можете. В других языках есть некоторые методы для этого, например array_sum () в PHP, но в Java их нет.
В Apache Math: есть StatUtils.sum(double[] arr)
Единственное, что я хотел бы добавить к предыдущим решениям, это то, что я бы использовал long для накопления суммы, чтобы избежать переполнения значения.
Код :
Выход :
Пояснение :
В Java 8 , вы можете использовать концепцию сокращения для добавления.
IMHO, функция суммы, казалось бы, хорошо подходит для расширения класса Arrays, где заполнение, сортировка, поиск, копирование и равенство в реальном времени. В документации javadoc скрывается множество удобных методов, так что при переносе Fortran на java будет справедливым вопросом задать вопрос перед развертыванием нашего собственного вспомогательного метода. Поищите в огромном индексе документации javadoc слова «сумма», «добавить» и любые другие ключевые слова, которые вы можете придумать. Вы можете предположить, что кто-то уже сделал это для примитивных типов int, float, double, Integer, Float, Double? Как бы просто ни было, проверить всегда хорошо. Сохраняйте код как можно проще и не изобретайте велосипед.
Мне лично нравится этот метод. Мой стиль кода немного странный.
Источник