Перейти к содержимому

Как объединять массивы в java

  • автор:

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.

Полезности

Туториалы
Системный дизайн
Собеседования
Студенты
Задачи

Немного о себе

Приветствую! Меня зовут Евгений. На этом сайте я пишу о разработке программного обеспечения. Связаться со мной вы можете по email: proselytear@yahoo.com Имеет смысл, предварительно ознакомиться вот с этим FAQ разделом.

Недавние публикации
  • Механизмы CAS и FAA глазами Java разработчика
  • ExecutorService в Java и примеры его применения.
  • Особенности работы PreparedStatement в JDBC
  • Основы кэширования в Hibernate
  • Феномены чтения глазами разработчика

Copyright © 2023 PROSELYTE.

Omega WordPress Theme by ThemeHall

Объединить массивы

Доброго времени суток. Помогите, пожалуйста. Стоит задача: «Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1) -м элементами первого, при этом не используя дополнительный массив.» Я в тупике, если честно — как объединить два массива без создания третьего, не используя стримы, коллекции, аррейлисты и тп. Пока только дошел до формирования самих массивов

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
import java.util.*; public class Main { public static void main(String[] args) { System.out.println("Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1) -м элементами первого, при этом не используя дополнительный массивта:"); System.out.println ("Введите размерность массива 1 массива"); Scanner input = new Scanner(System.in); int n = input.nextInt(); int [] mas1 = new int [n]; System.out.println ("Введите элементы 1 массива"); for(int i = 0 ; i  n ; i++) { mas1[i] = input.nextInt(); } System.out.println ("Введите размерность массив 2 массива"); int m = input.nextInt(); int [] mas2 = new int [m]; System.out.println ("Введите элементы 2 массива"); for(int i = 0 ; i  m ; i++) { mas2[i] = input.nextInt(); } System.out.println("массив 1 \n" +Arrays.toString(mas1)); System.out.println("массив 2 \n" +Arrays.toString(mas2)); } }

Объединить два массива, только совпадающие элементы

Как 2 массива объединить в один, чтобы в новом (третьем) массиве были только совпадающие элементы, в данном случае 23772 ?

Отслеживать
81.2k 7 7 золотых знаков 72 72 серебряных знака 153 153 бронзовых знака
задан 13 окт 2015 в 20:26
77 7 7 бронзовых знаков
а вам с какой сложностью решение надо? В лоб за O(nm) поумнее за O(n log m) или за O(n+m)?
13 окт 2015 в 20:29
@pavel интересно про О(n+m). Можно ссылку, где почитать? Спасибо
13 окт 2015 в 20:33

для получения O(n+m) есть смысл воспользоваться multiset или map, теми которые hash. Алгоритм — ложим в hash multiset весь массив а, потом идём по массиву b, если элемент есть в сете, то удаляем его и ложим в массив — ответ.

13 окт 2015 в 20:40
@pavel — а поиск по hash multiset за константное время? О_о. вот я раньше мучился(
13 окт 2015 в 20:42
можно конкретные примеры?
13 окт 2015 в 20:50

4 ответа 4

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

long[] result = LongStream.concat(Arrays.stream(a), Arrays.stream(b)).distinct().toArray(); 

Отслеживать
ответ дан 14 окт 2015 в 9:56
Tagir Valeev Tagir Valeev
5,509 16 16 серебряных знаков 42 42 бронзовых знака

private static List asList(long[] array) < Listres = new ArrayList<>(array.length); for (long l : array) < res.add(l); >return res; > public static void main(String[] args) < long[] a = new long[]; long[] b = new long[]; List cList = asList(a); cList.retainAll(asList(b)); System.out.println(cList); > 

Отслеживать
ответ дан 13 окт 2015 в 21:56
2,653 17 17 серебряных знаков 23 23 бронзовых знака

Вот решение с временной сложностью O(m + n) :

private static Long[] getIntersection (long[] a, long[] b) < HashSetaSet = new HashSet<>(), bSet = new HashSet<>(); for(int i = 0; i < a.length; i++) < aSet.add(a[i]); >for(int i = 0; i < b.length; i++) < bSet.add(b[i]); >ArrayList intersection = new ArrayList<>(); for(Long l : aSet) < if(bSet.contains(l)) < intersection.add(l); >> return intersection.toArray(new Long[]<>); > 

Отслеживать
ответ дан 14 окт 2015 в 3:28
Peter Olson Peter Olson
10.5k 7 7 золотых знаков 30 30 серебряных знаков 53 53 бронзовых знака

  1. В верхнем цикле пробегайтесь по элементам 1-го массива
  2. Во внутреннем цикле сравнивайте элемент 1-го массива со всеми элементами второго до тех пор пока не будет совпадения.
  3. При совпадении помещайте совпавший элемент в список.
  4. Список преобразуйте в массив.

Отслеживать
ответ дан 13 окт 2015 в 20:32
69.8k 9 9 золотых знаков 66 66 серебряных знаков 122 122 бронзовых знака
Немного не точно сформулировал вопрос, а если неизвестное количество входных массивов, как получить?
13 окт 2015 в 20:48

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

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

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