在 Java 中,LinkedList(链表) 是 java.util 包下的一个类,它实现了 List 和 Deque 接口,底层采用的是**双向链表(doubly linked list)**结构。
LinkedList 是一种线性数据结构,其中的元素(节点)在内存中不是连续存储的,而是通过“指针”一个接一个连起来。
Java 中的 LinkedList 每个节点包含三部分:
示意图(双向链表):
null <- [A] <-> [B] <-> [C] <-> [D] -> null
✅ 优点
❌ 缺点
| 对比项 | LinkedList | ArrayList |
|---|---|---|
| 底层结构 | 双向链表 | 动态数组 |
| 随机访问 | 慢(O(n)) | 快(O(1)) |
| 头部插入/删除 | 快(O(1)) | 慢(O(n)) |
| 尾部插入 | 快 | 快 |
| 内存占用 | 较高 | 较低 |
LinkedList<String> list = new LinkedList<>();
// 添加
list.add("A"); // 尾部添加
list.addFirst("B"); // 头部添加
list.addLast("C"); // 尾部添加
// 获取
list.get(0); // 慢
list.getFirst();
list.getLast();
// 删除
list.removeFirst();
list.removeLast();
// 其他
list.size();
list.contains("A");
示例(队列):
Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.poll();
Java 的 LinkedList 是一个基于双向链表的集合类,适合频繁插入删除,不适合频繁随机访问。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。