温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java LinkedList链表是什么

发布时间:2026-10-23 11:19:29 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在 Java 中,LinkedList(链表) 是 java.util 包下的一个类,它实现了 List 和 Deque 接口,底层采用的是**双向链表(doubly linked list)**结构。


一、什么是 LinkedList(链表)

LinkedList 是一种线性数据结构,其中的元素(节点)在内存中不是连续存储的,而是通过“指针”一个接一个连起来。

Java 中的 LinkedList 每个节点包含三部分:

  1. 数据(元素值)
  2. 指向前一个节点的引用(prev)
  3. 指向后一个节点的引用(next)

示意图(双向链表):

null <- [A] <-> [B] <-> [C] <-> [D] -> null

二、LinkedList 的特点

✅ 优点

  • 在头部或中间插入、删除元素效率高(O(1),已知节点时)
  • 不需要连续内存空间
  • 可以作为 栈、队列、双端队列 使用

❌ 缺点

  • 随机访问慢(get(i) 需要遍历,O(n))
  • 每个节点额外存储前后指针,内存占用更大

三、LinkedList 与 ArrayList 对比

对比项 LinkedList ArrayList
底层结构 双向链表 动态数组
随机访问 慢(O(n)) 快(O(1))
头部插入/删除 快(O(1)) 慢(O(n))
尾部插入 快 快
内存占用 较高 较低

四、LinkedList 常用方法

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");

五、LinkedList 的典型用途

  • 实现 队列(Queue)
  • 实现 栈(Stack)
  • 频繁在头部或中间插入/删除的场景

示例(队列):

Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.poll();

六、简单总结

Java 的 LinkedList 是一个基于双向链表的集合类,适合频繁插入删除,不适合频繁随机访问。

如果你愿意,我也可以:

  • 画更详细的内存结构图
  • 对比源码(JDK 8 / JDK 17)
  • 给你写一个 LinkedList 手写实现版本
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手