基于双向链表实现,适合频繁插入删除的场景
LinkedList 基于双向链表实现,插入删除快,查询慢。还实现了 Deque 接口,可以作为队列或栈使用。
import java.util.LinkedList;
LinkedList<String> queue = new LinkedList<>();
// 作为队列使用(FIFO)
queue.offer("A"); // 入队
queue.offer("B");
queue.offer("C");
String head = queue.poll(); // 出队(返回A)
// 作为栈使用(LIFO)
LinkedList<String> stack = new LinkedList<>();
stack.push("第一");
stack.push("第二");
String top = stack.pop(); // 弹出"第二"
1. 插入删除快:只需修改指针,O(1)
2. 查询慢:需要从头遍历,O(n)
3. 可以作为队列(FIFO)或栈(LIFO)使用
4. 占用更多内存:需要存储前后指针