Java LinkedList addLast() 方法
addLast()
方法是 Java 中 LinkedList
类提供的一个常用方法,用于在链表的末尾添加元素。这个方法对于实现队列(FIFO)数据结构特别有用。
public void addLast(E e)
方法参数
参数 | 类型 | 描述 |
---|---|---|
e | E | 要添加到链表末尾的元素 |
返回值
此方法没有返回值(void
类型)。
方法特点
- 时间复杂度:O(1) - 因为
LinkedList
维护了指向头尾节点的指针,所以可以直接在末尾添加元素 - 线程不安全:此方法不是线程安全的,如果在多线程环境下使用需要外部同步
- 允许 null 值:可以向链表添加
null
元素 - 容量限制:
LinkedList
没有容量限制,可以一直添加元素直到内存耗尽
使用示例
基本用法
实例
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
// 创建一个 LinkedList
LinkedList<String> fruits = new LinkedList<>();
// 使用 addLast() 方法添加元素
fruits.addLast("Apple");
fruits.addLast("Banana");
fruits.addLast("Cherry");
// 打印链表
System.out.println(fruits); // 输出: [Apple, Banana, Cherry]
}
}
public class LinkedListDemo {
public static void main(String[] args) {
// 创建一个 LinkedList
LinkedList<String> fruits = new LinkedList<>();
// 使用 addLast() 方法添加元素
fruits.addLast("Apple");
fruits.addLast("Banana");
fruits.addLast("Cherry");
// 打印链表
System.out.println(fruits); // 输出: [Apple, Banana, Cherry]
}
}
与 add() 方法的比较
实例
LinkedList<Integer> numbers = new LinkedList<>();
// addLast() 和 add() 在 LinkedList 中是等效的
numbers.add(1); // 在末尾添加
numbers.addLast(2); // 在末尾添加
System.out.println(numbers); // 输出: [1, 2]
// addLast() 和 add() 在 LinkedList 中是等效的
numbers.add(1); // 在末尾添加
numbers.addLast(2); // 在末尾添加
System.out.println(numbers); // 输出: [1, 2]
异常情况
addLast()
方法可能会抛出以下异常:
- ClassCastException - 如果指定元素的类不允许它添加到此列表中
- NullPointerException - 如果列表不允许 null 元素,而指定元素为 null
- IllegalArgumentException - 如果此元素的某些属性不允许它添加到此列表中
实际应用场景
- 实现队列:
addLast()
可以用于实现队列的入队操作 - 日志记录:按时间顺序记录事件时,可以使用此方法
- 历史记录:在实现撤销/重做功能时,可以使用链表来存储操作历史
实例
// 简单的队列实现示例
LinkedList<String> queue = new LinkedList<>();
// 入队操作
queue.addLast("Task1");
queue.addLast("Task2");
queue.addLast("Task3");
// 出队操作
String firstTask = queue.removeFirst();
System.out.println("Processing: " + firstTask);
LinkedList<String> queue = new LinkedList<>();
// 入队操作
queue.addLast("Task1");
queue.addLast("Task2");
queue.addLast("Task3");
// 出队操作
String firstTask = queue.removeFirst();
System.out.println("Processing: " + firstTask);
注意事项
- 对于频繁的随机访问操作,
ArrayList
可能比LinkedList
更高效 - 在 Java 中,
LinkedList
实现了Deque
接口,因此也可以使用offerLast()
方法实现类似功能 - 如果链表为空,
addLast()
会将添加的元素作为链表的第一个也是唯一一个元素
总结
LinkedList
的 addLast()
方法是一个简单但强大的工具,用于在链表末尾高效地添加元素。理解这个方法的工作原理和适用场景,可以帮助你在需要频繁在集合末尾添加元素的情况下做出正确的数据结构选择。
点我分享笔记