Как сложить массивы в java
Перейти к содержимому

Как сложить массивы в java

  • автор:

Как сложить элементы массива java

Чтобы сложить все элементы массива в Java, можно использовать обычный цикл или стримы. Рассмотрим оба варианта. Первый вариант с циклом:

class Calc  public static int sum(int[] numbers)  // Объявляем переменную для хранения суммы var sum = 0; // В цикле перебираем каждый элемент и добавляем его к сумме for(int num : numbers)  sum += num; > return sum; > > 
Calc.sum(new int[] 1, 2, 3>); // 6 

Второй вариант со стримами значительно лаконичнее:

class Calc  public static int sum(int[] numbers)  Полкчаем IntStream из элементов массива и находим сумму return Arrays.stream(numbers).sum(); > > 
Calc.sum(new int[] 1, 2, 3>); // 6 

Java. Сложить два массива int[] не используя алгоритмы сортировки и Array.copy()

Нужно сложить их так чтобы, получившийся в результате этого сложения третий массив был уже отсортирован. Например, из двух приведенных выше массивов, должен получится такой:

Запрещено использовать типичные алгоритмы сортировки. Тоесть идея в том что сортировка происходит при сложении. Как-то изловчится через циклы.

Отслеживать
72.1k 12 12 золотых знаков 92 92 серебряных знака 180 180 бронзовых знаков
задан 17 ноя 2016 в 7:58
5,327 11 11 золотых знаков 58 58 серебряных знаков 117 117 бронзовых знаков
что значит сложить массивы?
17 ноя 2016 в 8:01

Задание противоречивое. Любой алгоритм, выдающий в результате отсортированный массив, по определению является алгоритмом сортировки.

17 ноя 2016 в 8:01
Да вы правы поменял на типичные.
17 ноя 2016 в 8:02
А что понимается под типичными алгоритмами? Сортировка слиянием — это типичный алгоритм или нет?
17 ноя 2016 в 8:03
Нет слиянием это я даже не слышал, может это то что нужно? А в чем идея?
17 ноя 2016 в 8:09

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Как Вам написали выше, используйте сортировку слиянием. То есть создайте массив массив размером как сумма размеров двух складываемых массивов. пойдет добавление в новый массив элементов методом слияния, т.е. берете самые первые элементы у первого и у второго массива и проверяете какой из них меньше. Тот который меньше добавляете в список. на его место вставляете следующий элемент из массива. И опять сравниваете. Вот хорошая статья на хабре с алгоритмом и объяснением

Отслеживать
ответ дан 17 ноя 2016 в 8:28
4,468 1 1 золотой знак 11 11 серебряных знаков 22 22 бронзовых знака

Так как массивы уже отсортированы и имеют фиксированную длину, можно завести два индекса указывающие на текущие элементы каждого массива.

Сделать цикл по результирующему массиву и в нем проверять какой из элементов источников меньше — его вставлять в результат, и сдвигать индекс для массива из которого вставляли.

Если один из индексов стал равен длине соответствующего ему массива — проверку можно не делать и сразу вставлять элемент из второго массива.

Примерная реализация цикла:

int firstIndex = 0; int secondIndex = 0; for(int i=0; i< result.length;i++) < if(firstIndex >= arrFirst.length)< result[i] = arrSecond[secondIndex]; secondIndex += 1; >else if(secondIndex >= arrSecond.length)< result[i] = arrFirst[firstIndex]; firstIndex += 1; >else if( arrFirst[firstIndex]else < result[i] = arrSecond[secondIndex]; secondIndex += 1; >> 

4.7. Java примеры – Как объединить два массива в один

В этом примере показано, как объединить два массива в один массив с помощью метода list.Addall(array1.asList(array2) класса List и метода Arrays.toString() класса Array.

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main < public static void main(String args[]) < String a[] = < "А", "Б", "В" >; String b[] = < "Г", "Д" >; List list = new ArrayList(Arrays.asList(a)); list.addAll(Arrays.asList(b)); Object[] c = list.toArray(); System.out.println(Arrays.toString(c)); > > 

Результат

Вышеприведенный пример кода даст следующий результат:

[А, Б, В, Г, Д] 

Еще один пример соединения массивов в Java.

public class HelloWorld < public static void main(String[] args) < int[]a = ; int[]b = ; int[]c = new int[a.length+b.length]; int count = 0; for(int i = 0; i < a.length; i++) < c[i] = a[i]; count++; >for(int j = 0; j < b.length;j++) < c[count++] = b[j]; >for(int i = 0;i < c.length;i++) System.out.print(c[i]+" "); >> 

Вышеприведенный пример кода даст следующий результат:

1,2,3,4,4,16,1,2,3,22 

Оглавление

  • 1. Java примеры – Использование кода на практике
  • 2. Java примеры – Окружающая среда
  • 2.1. Java примеры – Скомпилировать файл
  • 2.2. Java примеры – Установить путь к нескольким классам
  • 2.3. Java примеры – Отладка java-файла
  • 2.4. Java примеры – Установить путь к классу
  • 2.5. Java примеры – Просмотреть текущий путь класса
  • 2.6. Java примеры – Установить назначение файла класса
  • 2.7. Java примеры – Запустить скомпилированный java-файл класса
  • 2.8. Java примеры – Узнать версию Java
  • 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
  • 3. Java примеры – Строки
  • 3.1. Java примеры – Сравнить две строки
  • 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
  • 3.3. Java примеры – Удалить нужный символ из строки
  • 3.4. Java примеры – Заменить символ в строке
  • 3.5. Java примеры – Вывод в обратном порядке
  • 3.6. Java примеры – Нахождение символа или слова в строке
  • 3.7. Java примеры – Разбиение строки на слова и символы
  • 3.8. Java примеры – Преобразование строки в верхний регистр
  • 3.9. Java примеры – Найти слово в строке
  • 3.10. Java примеры – Сравнить производительность создания строки
  • 3.11. Java примеры – Оптимизировать создание строк
  • 3.12. Java примеры – Форматирование строк
  • 3.13. Java примеры – Конкатенация строк
  • 3.14. Java примеры – Определить код Юникода символа в строке
  • 3.15. Java примеры – Буферизация строк
  • 4. Java примеры – Массивы
  • 4.1. Java примеры – Сортировка массива и поиск элемента
  • 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
  • 4.3. Java примеры – Размер двумерного массива
  • 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
  • 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
  • 4.6. Java примеры – Найти максимальный и минимальный элемент массива
  • 4.7. Java примеры – Соединить два массива в один
  • 4.8. Java примеры – Как заполнить массив числами
  • 4.9. Java примеры – Увеличить массив после инициализации
  • 4.10. Java примеры – Сравнение двух массивов
  • 4.11. Java примеры – Удаление элемента из массива
  • 4.12. Java примеры – Удаление массива из другого массива
  • 4.13. Java примеры – Одинаковые элементы массивов
  • 4.14. Java примеры – Поиск в массиве
  • 4.15. Java примеры – Равенство двух массивов
  • 4.16. Java примеры – Сравнить массивы
  • 5. Java примеры – Дата и время
  • 5.1. Java примеры – Форматирование времени в формате AM-PM
  • 5.2. Java примеры – Получение названия и номера текущего месяца
  • 5.3. Java примеры – Получить текущее время в часах и минутах
  • 5.4. Java примеры – Вывести текущее время и дату
  • 5.5. Java примеры – Вывести текущее время в 24-часовом формате
  • 5.6. Java примеры – Получить текущий месяц
  • 5.7. Java примеры – Получить текущие секунды
  • 5.8. Java примеры – Получить короткое название месяца
  • 5.9. Java примеры – Получить день недели
  • 5.10. Java примеры – Добавление времени к дате
  • 5.11. Java примеры – Отображение времени в формате другой страны
  • 5.12. Java примеры – Отображение времени на разных языках
  • 5.13. Java примеры – Прокрутить часы и месяцы
  • 5.14. Java примеры – Получить номер недели и месяц в году
  • 5.15. Java примеры – Форматы текущей даты
  • 6. Java примеры – Методы
  • 6.1. Java примеры – Перезагрузка методов
  • 6.2. Java примеры – Вывод массива с использованием метода
  • 6.3. Java примеры – Решение Ханойской башни
  • 6.4. Java примеры – Последовательность чисел Фибоначчи
  • 6.5. Java примеры – Вычисление факториала числа
  • 6.6. Java примеры – Переопределение метода
  • 6.7. Java примеры – Вывод массива с использованием метода
  • 6.8. Java примеры – Использование оператора break
  • 6.9. Java примеры – Использование оператора continue
  • 6.10. Java примеры – Использование метки в методе
  • 6.11. Java примеры – Использование операторов enum и switch
  • 6.12. Java примеры – Использование конструктора enum

Java – Сложение массивов

Статьи по Java

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

Сложение массивов в Java заключается в сложении каждого элемента первого массива с элементом той же позиции второго массива и помещении результата в третий массив, который и будет результатом.

В дополнение к демонстрации суммы я покажу вам, как вывести три массива.

Проход по матрице

Прежде чем перейти к рассмотрению добавления элементов массива, давайте посмотрим, как обходить сам массив. Помните, что вы можете использовать любой метод, но я буду использовать два цикла for.

for (int y = 0; y < matrix1.length; y++) < for (int x = 0; x < matrix1[y].length; x++) < >>

Во втором цикле у нас уже есть доступ к элементу, для этого мы обращаемся к matrix[y][x].

Выполнение сложения матриц

Поскольку обе матрицы измеряют одно и то же, нам нужно только выполнить путь в одной из них и обратиться к элементам обеих в одинаковых позициях, чтобы сложить их и сохранить результат в третьей матрице.

Мы начинаем объявлять матрицу, в которой будет находиться сумма, и приступаем к сложению элементов:

// Сначала вычисляем сумму int[][] matrixSum = new int[matrix1.length][matrix1[0].length]; for (int y = 0; y < matrix1.length; y++) < for (int x = 0; x < matrix1[y].length; x++) < int numMatrix1 = matrix1[y][x]; int numMatrix2 = matrix2[y][x]; int sum = numMatrix1 + numMatrix2; matrixSum[y][x] = sum; >>
Code language: JavaScript (javascript)

Теперь осталось только вывести результат.

// Затем выводим заголовки System.out.println("\t\t\t1\t\t\t\t\t2\t\t\t\tСумма"); for (int x = 0; x < 62; x++) < System.out.print("_"); > System.out.println(); // Наконец, выводим результат for (int y = 0; y < matrix1.length; y++) < for (int x = 0; x < matrix1[y].length; x++) < System.out.printf("%5d ", matrix1[y][x]); > System.out.print(" | "); for (int x = 0; x < matrix2[y].length; x++) < System.out.printf("%5d ", matrix2[y][x]); > System.out.print(" | "); for (int x = 0; x < matrixSum[y].length; x++) < System.out.printf("%5d ", matrixSum[y][x]); > System.out.print(" | "); System.out.println(); >
Code language: PHP (php)

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

Собираем все вместе

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

Полный код выглядит следующим образом:

public class Main < static void summMatrixes(int[][] matriz1, int[][] matriz2) < // Сначала вычисляем сумму int[][] matrixSum = new int[matrix1.length][matrix1[0].length]; for (int y = 0; y < matrix1.length; y++) < for (int x = 0; x < matrix1[y].length; x++) < int numMatrix1 = matrix1[y][x]; int numMatrix2 = matrix2[y][x]; int sum = numeroMatrix1 + numeroMatrix2; matrixSum[y][x] = sum; >> // Затем выводим заголовки System.out.println("\t\t\t1\t\t\t\t\t2\t\t\t\tСумма"); for (int x = 0; x < 62; x++) < System.out.print("_"); > System.out.println(); // Наконец, выводим результат for (int y = 0; y < matrix1.length; y++) < for (int x = 0; x < matrix1[y].length; x++) < System.out.printf("%5d ", matrix1[y][x]); > System.out.print(" | "); for (int x = 0; x < matrix2[y].length; x++) < System.out.printf("%5d ", matrix2[y][x]); > System.out.print(" | "); for (int x = 0; x < matrixSum[y].length; x++) < System.out.printf("%5d ", matrixSum[y][x]); > System.out.print(" | "); System.out.println(); > > public static void main(String[] args) < int[][] matrix1 = < 10, 5, 12>, 98, 5, 6>, 8, 4, 6>, >; int[][] matrix2 = < 8, 7, 5>, 19, 56, 4>, 8, 76, 90>, >; summMatrixes(matrix1, matrix2); > >
Code language: PHP (php)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *