当前位置:首页 > Java > 正文

深入理解Java中的LinkedList(从零开始掌握链表操作)

在Java编程中,LinkedList 是一个非常常用的数据结构,属于 Java集合框架 的一部分。如果你刚接触编程或者对数据结构还不太熟悉,别担心!本教程将用通俗易懂的方式带你从零开始掌握 Java LinkedList 的基本概念、使用方法和常见操作。

什么是LinkedList?

LinkedList 是一种基于“链表”实现的线性数据结构。与 ArrayList 不同,它不是通过连续的内存空间存储元素,而是通过“节点”(Node)来连接各个元素。每个节点包含两部分:数据(值)和指向下一个(以及上一个)节点的引用。

深入理解Java中的LinkedList(从零开始掌握链表操作) Java LinkedList  链表数据结构 Java集合框架 LinkedList教程 第1张

这种结构使得在列表中间插入或删除元素变得非常高效,因为不需要像数组那样移动大量元素。

LinkedList 的特点

  • 允许存储 null 值
  • 可以当作列表(List)、栈(Stack)或队列(Queue)使用
  • 插入和删除操作时间复杂度为 O(1)(在已知位置)
  • 随机访问效率较低,时间复杂度为 O(n)

如何创建和使用 LinkedList?

首先,你需要导入 java.util.LinkedList 类:

import java.util.LinkedList;public class LinkedListExample {    public static void main(String[] args) {        // 创建一个空的 LinkedList        LinkedList<String> list = new LinkedList<>();        // 添加元素        list.add("苹果");        list.add("香蕉");        list.addFirst("橙子");  // 在开头添加        list.addLast("葡萄");   // 在末尾添加        // 打印整个列表        System.out.println("当前列表: " + list);        // 获取第一个和最后一个元素        System.out.println("第一个元素: " + list.getFirst());        System.out.println("最后一个元素: " + list.getLast());        // 删除元素        list.remove("香蕉");        System.out.println("删除'香蕉'后: " + list);        // 检查是否包含某个元素        System.out.println("是否包含'苹果': " + list.contains("苹果"));    }}

运行上述代码,你将看到如下输出:

当前列表: [橙子, 苹果, 香蕉, 葡萄]第一个元素: 橙子最后一个元素: 葡萄删除'香蕉'后: [橙子, 苹果, 葡萄]是否包含'苹果': true

LinkedList 作为队列和栈使用

除了作为普通列表,LinkedList 还实现了 Deque 接口,因此可以当作双端队列、栈或普通队列使用。

作为队列(先进先出)

LinkedList<Integer> queue = new LinkedList<>();queue.offer(1);  // 入队queue.offer(2);System.out.println(queue.poll()); // 出队 → 输出 1

作为栈(后进先出)

LinkedList<Integer> stack = new LinkedList<>();stack.push(10);  // 入栈stack.push(20);System.out.println(stack.pop()); // 出栈 → 输出 20

何时使用 LinkedList?

虽然 LinkedList 功能强大,但并不总是最佳选择。以下是适合使用 LinkedList 的场景:

  • 需要频繁在列表中间插入或删除元素
  • 需要实现栈或队列功能
  • 不常进行随机访问(如通过索引获取元素)

反之,如果主要操作是读取或遍历,且很少修改结构,ArrayList 可能更高效。

总结

Java LinkedList 是一个灵活且功能丰富的数据结构,特别适合需要频繁增删操作的场景。通过本教程,你应该已经掌握了它的基本用法、特点以及适用场景。希望这篇 LinkedList教程 能帮助你在 Java 编程之路上更进一步!

关键词回顾:Java LinkedList、链表数据结构、Java集合框架、LinkedList教程