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

Java LinkedList详解(从零开始掌握LinkedList的使用方法)

在Java编程中,LinkedList 是一个非常重要的集合类,属于 java.util 包。它实现了 ListDeque 接口,既可以作为列表使用,也可以当作双端队列来操作。本教程将带你从零开始学习 Java LinkedList 的基本概念、常用方法和实际应用场景,即使你是编程小白也能轻松上手!

什么是LinkedList?

LinkedList 是基于双向链表实现的数据结构。与 ArrayList 不同,它不依赖于连续的内存空间,而是通过节点(Node)之间的引用连接起来。每个节点包含三个部分:数据、指向前一个节点的引用和指向后一个节点的引用。

Java LinkedList详解(从零开始掌握LinkedList的使用方法) LinkedList教程 LinkedList使用方法 Java链表操作 LinkedList增删改查 第1张

这种结构使得 LinkedList插入删除元素时效率很高(尤其是首尾操作),但随机访问(如通过索引获取元素)速度较慢,因为需要从头或尾遍历。

如何创建LinkedList?

首先,你需要导入 java.util.LinkedList,然后可以像下面这样创建一个 LinkedList 对象:

import java.util.LinkedList;public class Main {    public static void main(String[] args) {        // 创建一个空的LinkedList        LinkedList<String> list = new LinkedList<>();                // 添加元素        list.add("苹果");        list.add("香蕉");        list.add("橙子");                System.out.println(list); // 输出: [苹果, 香蕉, 橙子]    }}  

LinkedList常用操作(增删改查)

下面我们详细讲解 LinkedList增删改查 的常用方法。

1. 添加元素(Add)

  • add(E e):在末尾添加元素
  • addFirst(E e) / addLast(E e):在头部或尾部添加
  • add(int index, E element):在指定位置插入
LinkedList<Integer> numbers = new LinkedList<>();numbers.add(10);numbers.addFirst(5);numbers.addLast(20);numbers.add(1, 7); // 在索引1处插入7// 结果: [5, 7, 10, 20]  

2. 删除元素(Remove)

  • remove() / removeFirst():删除第一个元素
  • removeLast():删除最后一个元素
  • remove(Object o):删除第一个匹配的元素
  • remove(int index):按索引删除
numbers.removeFirst(); // 删除5numbers.remove(new Integer(10)); // 删除值为10的元素// 结果: [7, 20]  

3. 修改元素(Set)

  • set(int index, E element):替换指定位置的元素
numbers.set(0, 100); // 将索引0的元素改为100// 结果: [100, 20]  

4. 查询元素(Get)

  • get(int index):获取指定索引的元素
  • getFirst() / getLast():获取首尾元素
  • contains(Object o):判断是否包含某元素
int first = numbers.getFirst(); // 100boolean has20 = numbers.contains(20); // true  

LinkedList vs ArrayList

很多初学者会疑惑:什么时候用 LinkedList,什么时候用 ArrayList?简单总结:

操作 LinkedList ArrayList
尾部插入/删除 O(1) O(1)(平均)
中间插入/删除 O(n) O(n)
随机访问 O(n) O(1)

因此,如果你的应用场景需要频繁在列表两端进行插入或删除(比如实现栈或队列),LinkedList 是更好的选择;如果需要大量随机访问,建议使用 ArrayList

实战小例子:用LinkedList实现栈

由于 LinkedList 支持高效的首尾操作,我们可以轻松用它实现栈(LIFO):

LinkedList<String> stack = new LinkedList<>();// 入栈stack.push("A");stack.push("B");stack.push("C");// 出栈while (!stack.isEmpty()) {    System.out.println(stack.pop()); // 输出: C, B, A}  

总结

通过本教程,你已经掌握了 Java LinkedList使用方法 的核心内容,包括创建、增删改查操作、与 ArrayList 的对比以及实际应用。记住,LinkedList 特别适合需要频繁在两端操作的场景。希望这篇 Java LinkedList教程 能帮助你打下坚实的基础!

如果你觉得有用,不妨动手写几个小例子加深理解。编程最重要的就是多练习!