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() | 获取列表末尾的项目 | 试一试 » |