Java LinkedList addAll() 方法
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
:要添加的集合元素
返回值
两种方法都返回 boolean
值:
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 java.util.Arrays;
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 java.util.Arrays;
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 内容
- 在特定位置插入一组元素
- 实现集合的复制或克隆功能
与 ArrayList 的 addAll() 比较
特性 | LinkedList addAll() | ArrayList addAll() |
---|---|---|
在末尾添加性能 | O(1) | O(1) 摊销时间 |
在中间插入性能 | O(n) | O(n) |
内存使用 | 更高(每个元素有额外指针) | 更低 |
点我分享笔记