Объединение списков в Java
Метод addAll(Collection c) класса java.util.ArrayList добавляет все элементы в указанной коллекции в конец этого списка в том порядке, в котором они возвращаются итератором указанной коллекции. Используя этот метод, вы можете объединить списки в Java.
Пример
import java.util.ArrayList; public class Sample < public static void main(String[] args) < ArrayListlist = new ArrayList(); list.add("JavaFx"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); System.out.println(list); ArrayList newList = new ArrayList(); list.add("HBase"); list.add("Neo4j"); list.add("MangoDB"); list.add("Cassandra"); list.addAll(newList); System.out.println(list); > >
Итог
[JavaFx, Java, WebGL, OpenCV] [JavaFx, Java, WebGL, OpenCV, HBase, Neo4j, MangoDB, Cassandra]
Средняя оценка 2.3 / 5. Количество голосов: 3
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
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
Обьединить два упорядоченных arraylist’a так, чтобы результирующий остался упорядоченным
Организовал через ArrayList, заполнил случайными значениями, отсортировал.
Теперь нужно в 1й массив добавлять эл-ты из второго, таким образом что бы первый остался отсортированым.
Помогите с циклом, пожалуйста)
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Объединить массивы так, чтобы результирующий массив С (размера 10) остался упорядоченным по возрастанию
6.Даны два массива А и В размера 5, элементы которых упорядочены по возрастанию. Объединить эти.
Объединить два упорядоченных массива так, чтобы результирующий массив остался упорядоченным
Даны два массива a и b размера n, элементы которых упорядочены по возрастанию. Объединить эти.
Объединить два массивы так, чтобы результирующий массив остался упорядоченным по возрастанию
Пожалуйста, помогите решить задачу, желательно с объяснениями! Даны два массива A и B размера 5.

Объединить массивы так, чтобы результирующий остался упорядоченным по убыванию
Даны три целочисленных массива A, B и C размера Na, Nb, Nc соответственно, элементы которых.
![]()
842 / 605 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
На массивах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public static int[] mergeSort(int[] array1, int[] array2) { int length = array1.length + array2.length; int[] array = new int[length]; int i = 0; int j = 0; for (int k = 0; k length; k++) { if (i >= array1.length) { array[k] = array2[j++]; } else if (j >= array2.length) { array[k] = array1[i++]; } else if (array1[i] >= array2[j]) { array[k] = array1[i++]; } else { array[k] = array2[j++]; } } return array; }
любитель покушать
686 / 640 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
Serg22,
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
import java.util.*; public class Test { public static void main(String[] args) { ListInteger> a = new ArrayList<>(); ListInteger> b = new ArrayList<>(); for (int i = 0; i 5; i++) { a.add((int) (Math.random() * 100)); } for (int i = 0; i 6; i++) { b.add((int) (Math.random() * 100)); } ComparatorInteger> comparator = (o1, o2) -> -Integer.compare(o1, o2); Collections.sort(a, comparator); Collections.sort(b, comparator); ListInteger> res = new ArrayList<>(); int i = 0; int j = 0; while(i a.size() && j b.size()) { if(a.get(i) > b.get(j)) { res.add(a.get(i)); ++i; } else { res.add(b.get(j)); ++j; } } while(i a.size()) { res.add(a.get(i)); ++i; } while(j b.size()) { res.add(b.get(j)); ++j; } System.out.println(a); System.out.println(b); System.out.println(res); } }
107 / 107 / 58
Регистрация: 04.03.2013
Сообщений: 479
Большое спасибо )
Упорядочивание по убыванию изменил немного:
Collections.sort(a,Collections.reverseOrder());
ЗЫ: А можно изменить что бы общее кол-во используемых массивов осталось два? т.е эл-ты добавлялись скажем в первый массив из второго?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Объединить массивы так, чтобы результирующий массив C остался упорядоченным по возрастанию
1.Даны два массива A и B, элементы которых упорядочены по возрастанию. Объединить эти массивы так.

Объединить массивы так, чтобы результирующий массив остался упорядоченным по возрастанию
Даны два массива A и B, элементы которых упорядочены по возрастанию. Объединить эти массивы так.
Объединить массивы так, чтобы результирующий массив C остался упорядоченным по возрастанию
С помощью массива. Даны два массива A и B размера 5, элементы которых упорядочены по.
Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию
Даны три целочисленных массива A, B и C размера NA, NB, NC соответственно, элементы которых.
Как объединить два ArrayList в один новый?
Как объединить два ArrayList в один новый? Раньше использовал обычный String[] , и функция выглядела так, но как поступить сейчас?
public static String[] ArrayAndArrayNewArray(String[] a, String[] b)
Отслеживать
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 19 авг 2015 в 20:41
Denis Kotlyarov Denis Kotlyarov
2,854 3 3 золотых знака 26 26 серебряных знаков 53 53 бронзовых знака
У вас не ArrayList, а массивы(array). Вам действительно необходимо объединить два ArrayList’а, или все-таки 2 массива?
20 авг 2015 в 10:03
@NektoDev: ну два массива он вроде бы уже умеет. Представленный код как раз это и делает.
20 авг 2015 в 11:38
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
1. Без проверки на null
Вот достаточно простая и малооптимизированная реализация. Если этот участок не является узким местом в вашем приложении, то дальнейшая оптимизация, вероятно, не нужна. Не сработает, если один из аргументов будет равен null . Можно использовать, только если это внутренний код и вы достоверно знаете, что аргументы определены.
List listC = new ArrayList(listA); listC.addAll(listB);
Должен заметить, что и в вашей реализации объединения массивов есть существенные уязвимости, связанные с null .
- Если один из списков == null , то метод вернет не новый массив, а один из старых.
- Если оба списка == null , то будет возвращен null , что вряд ли ожидаемо
Исправлять ошибки метода для объединения массивов следует в отдельном вопросе, а здесь я приведу код, который устойчив к аргументам со значением null .
2. Проверяем и молча пропускаем null
Метод обобщен согласно правилу PECS.
public static ArrayList joinLists( final List listA, final List listB) < boolean aEmpty = (listA == null) || listA.isEmpty(); boolean bEmpty = (listB == null) || listB.isEmpty(); //побитное И! if (aEmpty & bEmpty) < // оба пустые — отдаем новый пустой список return new ArrayList(); > else if (aEmpty) < // один пустой — отдаем копию другого, содержащую все его элементы return new ArrayList(listB); > else if (bEmpty) < return new ArrayList(listA); > else < // оба непустые — объединяем ArrayListresult = new ArrayList( listA.size() + listB.size()); result.addAll(listA); result.addAll(listB); return result; > >
3. Проверяем null и бросаем исключения
/** * Join two lists and raise an exception if any is null * * @throws NullPointerException * if any parameter is null */ public static List joinLists2( final List listA, final List listB) < if (listA == null) < throw new NullPointerException("listA is null"); >if (listB == null) < throw new NullPointerException("listB is null"); >if (listA.isEmpty()) < return new ArrayList(listB); > else if (listB.isEmpty()) < return new ArrayList(listA); > else < ArrayListresult = new ArrayList( listA.size() + listB.size()); result.addAll(listA); result.addAll(listB); return result; > >
Отслеживать
ответ дан 19 авг 2015 в 21:08
Nick Volynkin ♦ Nick Volynkin
33.9k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
ArrayList — это обёртка для обычного массива. Есть счётчик size , который считает, сколько элементов массива использовано.
По ходу того, как добавляются новые элементы, size увеличивается, а когда весь массив будет заполнен, ArrayList выделяет новый массив большей длины и копирует в него все элементы.
Отсюда следует, что наиболее эффективным будет такое заполнение списка, при котором внутренний массив будет достаточной длины, и не будет происходить выделение нового массива. Для этого, у ArrayList есть конструктор с int параметром, в котором указывается, на сколько элементов должен быть выделен массив изначально.
public static List joinLists(List a, List b) < if ((a == null) || (a.isEmpty() && (b != null))) return b; if ((b == null) || b.isEmpty()) return a; ArrayListresult = new ArrayList(a.size() + b.size()); // Закладываем размер достаточный для всех элементов result.addAll(a); result.addAll(b); return result; >
Но, поскольку addAll внутри себя использует неявное создание временного массива, то, если заранее известно, что исходные списки — это ArrayList , то большей эффективности по памяти можно достичь следующим образом. Следует учесть, что вариант ниже позволяет избежать выделения лишних массивов и уменьшить затраты на сборку мусора (больная тема в Андроиде, особенно в ранних версиях), но он не обязательно эффективнее по скорости, скорее даже наоборот.
public static List joinLists(List a, List b) < if ((a == null) || (a.isEmpty() && (b != null))) return b; if ((b == null) || b.isEmpty()) return a; int aSize = a.size(); int bSize = b.size(); // Закладываем размер достаточный для всех элементов ArrayListresult = new ArrayList(aSize + bSize); // Если списки обеспечивают быстрый доступ к своим элементам, например ArrayList if ((a instanceof RandomAccess) && (b instanceof RandomAccess)) < for (int i = 0; i < aSize; i++) result.add(a.get(i)); for (int i = 0; i < bSize; i++) result.add(b.get(i)); >else < // А если это какие-то крестьянские списки, то копируем по-крестьянски result.addAll(a); result.addAll(b); >return result; >