Метод addAll() класса LinkedList в Java

Java LinkedList Java LinkedList


addAll()В Java метод являетсяLinkedListобщим методом, предоставляемым классом, используемым для добавления всех элементов из одной коллекции в другую.


Синтаксис метода

LinkedListКласс предоставляет дваaddAll()перегруженные формы метода:

1. Добавить элементы в конец списка

boolean addAll(Collection<? extends E> c)

2. Вставить элементы в указанную позицию

boolean addAll(int index, Collection<? extends E> c)

Описание параметра

Параметры первой формы

  • c: элементы коллекции для добавления, при этом тип элемента должен быть совместим с типом элемента LinkedList

Вторая форма

  • index: Индекс позиции вставки (начиная с 0)
  • c: Элементы коллекции, которые нужно добавить

Возвращаемое значение

Оба метода возвращаютbooleanvalue:

  • trueЕсли LinkedList изменяется в результате вызова
  • falseЕсли переданная коллекция пуста или не было добавлено ни одного элемента

Пример использования

Пример базового использования

Пример

import java.util.LinkedList;
import java.util.ArrayList;

public class AddAllExample {
    public static void main(String[] args) {
        // Создать две коллекции
        LinkedList<String> linkedList = new LinkedList<>();
        ArrayList<String> arrayList = new ArrayList<>();
       
        // Добавить элементы в ArrayList
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Orange");
       
        // Используйте метод addAll() для добавления элементов ArrayList в LinkedList
        linkedList.addAll(arrayList);
       
        System.out.println("Содержимое LinkedList: " + linkedList);
    }
}

Результат вывода:

LinkedList 内容: [Apple, Banana, Orange]

Вставка элементов в указанную позицию

Пример

import java.util.LinkedList;
import * Heap;

public class AddAllAtIndexExample {
    public static void main(String[] args) {
        LinkedList<String> fruits = new LinkedList<>(Arrays.asList("Apple", "Orange"));
        LinkedList<String> moreFruits = new LinkedList<>(Arrays.asList("Banana", "Grape"));
       
        // Вставить элементы по индексу 1
        fruits.addAll(1, moreFruits);
       
        System.out.println("Изменённый LinkedList: " + fruits);
    }
}

Результат вывода:

修改后的 LinkedList: [Apple, Banana, Grape, Orange]

Примечания

  1. Обработка пустой коллекции: Если переданная коллекция равна null, будет выброшено исключение.NullPointerException
  2. Индекс вне границ: Если указанный индекс выходит за допустимый диапазон (index < 0 || index > size()), будет выброшено исключение.IndexOutOfBoundsException
  3. Соображения производительности: Вставка большого количества элементов в середину LinkedList может быть более эффективной, чем в ArrayList
  4. Порядок элементов: Вновь добавленные элементы сохранят свой порядок в исходной коллекции

Практические сценарии применения

addAll()Метод особенно полезен в следующих сценариях:

  1. Объединение данных из нескольких коллекций
  2. Пакетная инициализация содержимого LinkedList
  3. Вставка группы элементов в определённую позицию
  4. Реализация функциональности копирования или клонирования коллекции

Сравнение с addAll() класса ArrayList

Характеристика LinkedList addAll() ArrayList addAll()
Производительность добавления в конец O(1) O(1) амортизированное время
Производительность вставки в середину O(n) O(n)
Использование памяти Выше (каждый элемент имеет дополнительные указатели) Нижний

Java LinkedList Java LinkedList

Другие расширения