Метод addAll() класса LinkedList в Java
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);
}
}
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);
}
}
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]
Примечания
- Обработка пустой коллекции: Если переданная коллекция равна null, будет выброшено исключение.
NullPointerException - Индекс вне границ: Если указанный индекс выходит за допустимый диапазон (index < 0 || index > size()), будет выброшено исключение.
IndexOutOfBoundsException - Соображения производительности: Вставка большого количества элементов в середину LinkedList может быть более эффективной, чем в ArrayList
- Порядок элементов: Вновь добавленные элементы сохранят свой порядок в исходной коллекции
Практические сценарии применения
addAll()Метод особенно полезен в следующих сценариях:
- Объединение данных из нескольких коллекций
- Пакетная инициализация содержимого LinkedList
- Вставка группы элементов в определённую позицию
- Реализация функциональности копирования или клонирования коллекции
Сравнение с addAll() класса ArrayList
| Характеристика | LinkedList addAll() | ArrayList addAll() |
|---|---|---|
| Производительность добавления в конец | O(1) | O(1) амортизированное время |
| Производительность вставки в середину | O(n) | O(n) |
| Использование памяти | Выше (каждый элемент имеет дополнительные указатели) | Нижний |
Другие расширения
Java LinkedList