Java 教程

Java 教程 Java 简介 Java 下载安装 Java 入门 Java 语法 Java 注释 Java 变量 Java 数据类型 Java 数据类型转换 Java 运算符 Java 字符串 Java 数学方法 Java 布尔值 Java If...Else Java Switch Java While 循环 Java For 循环 Java Break/Continue Java 数组

Java 方法

Java 方法 Java 方法参数 Java 方法重载 Java 作用域 Java 递归

Java 类库

Java OOP Java 对象和类 Java 类属性 Java 类方法 Java 构造函数 Java 修饰符 Java 封装 Java 包与API Java 继承 Java 多态 Java 内部类 Java 抽象类 Java 接口 Java 枚举 Java 用户输入 Java 日期和时间 Java ArrayList Java LinkedList Java HashMap Java HashSet Java 迭代器 Java 包装类 Java Exceptions Java 正则表达式 Java 线程 Java Lambda

Java 文件处理

Java 文件 Java 创建/写入文件 Java 读取文件 Java 删除文件

Java 如何使用

添加两个数字

Java 参考手册

Java 关键字 Java 字符串方法 Java 数学方法 Java & MongoDB 教程 Java XML 教程

Java 常用包

java.io 包 java.lang 包 java.math 包 java.time 包 java.util 包 java.util.regex 包 java.util.zip 包

Java 各版本参考

Java8 (2014-3-18) Java9 (2017-9-21) Java10 (2018-3-10) Java11 (2018 年 9 月) Java12 (2019 年 3 月) Java13 (2019 年 9 月) Java14 (2020-3-17) Java15 (2020 年 9 月) Java16 (2021 年 3 月)

Java 实例

Java 实例 Java 练习 Java 测验



Java 链表

Java 链表

在上一章中,您了解了 ArrayList 类。 LinkedList 类与 ArrayList 几乎相同:

实例

// 导入 LinkedList 类
import java.util.LinkedList;

public class MyClass {
  public static void main(String[] args) {
    LinkedList<String> cars = new LinkedList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    System.out.println(cars);
  }
}

运行实例 »


ArrayList 与 LinkedList

LinkedList 类是一个集合,可以包含许多相同类型的对象,就像 ArrayList 一样。

LinkedList 类具有与 ArrayList 类相同的所有方法,因为它们都实现了 List 接口。这意味着您可以以相同的方式添加项目、更改项目、删除项目和清除列表。

然而,虽然 ArrayList 类和 LinkedList 类可以以相同的方式使用,但它们的构建方式却大不相同。

ArrayList 的工作原理

ArrayList 类内部有一个常规数组。添加元素时,会将其放入数组中。如果阵列不够大,则会创建一个更大的新阵列来替换旧阵列,并移除旧阵列。

LinkedList 的工作原理

LinkedList 将其项目存储在"容器"中。该列表有一个指向第一个容器的链接,每个容器都有一个指向列表中下一个容器的链接。要将元素添加到列表中,将该元素放入一个新容器中,并且该容器链接到列表中的其他容器之一。

何时使用

在以下情况下最好使用 ArrayList:

  • 您想经常访问随机项目
  • 您只需要在列表末尾添加或删除元素

在以下情况下最好使用 LinkedList:

  • 您只能通过循环使用列表而不是访问随机项目
  • 您经常需要从开头或中间添加和删除项目

LinkedList 链表方法

在许多情况下,ArrayList 更有效,因为通常需要访问列表中的随机项,但 LinkedList 提供了几种方法来更有效地执行某些操作:

方法 描述 试一试
addFirst() 将一个项目添加到列表的开头。 试一试 »
addLast() 将项目添加到列表末尾 试一试 »
removeFirst() 从列表的开头删除一个项目 试一试 »
removeLast() 从列表末尾删除一个项目 试一试 »
getFirst() 获取列表开头的项目 试一试 »
getLast() 获取列表末尾的项目 试一试 »