• Java 数据结构 教程

Java 数据结构 - 链表类



介绍

java.util.LinkedList 类的操作执行了我们可以期望的双向链表操作。索引到列表的操作将从开头或结尾遍历列表,以靠近指定索引者为准。

类声明

以下是 java.util.LinkedList 类的声明:-

public class LinkedList<E>
   extends AbstractSequentialList<E>
   implements List<E>, Deque<E>, Cloneable, Serializable

参数

以下是 java.util.LinkedList 类的参数:-

  • E - 这是此集合中保存的元素的类型。

字段

从类 java.util.AbstractList 继承的字段。

类构造函数

序号 构造函数和描述
1

LinkedList()

这会构造一个空列表。

2

LinkedList(Collection<? extends E> c)

这会构造一个包含指定集合中元素的列表,其顺序与集合的迭代器返回的顺序相同。

类方法

序号 方法和描述
1

boolean add(E e)

此方法将指定的元素追加到此列表的末尾。

2

void add(int index, E element)

此方法在此列表的指定位置插入指定的元素。

3

boolean addAll(Collection<? extends E> c)

此方法将指定集合中的所有元素追加到此列表的末尾,其顺序与指定集合的迭代器返回的顺序相同。

4

boolean addAll(int index, Collection<? extends E> c)

此方法将指定集合中的所有元素插入到此列表中,从指定位置开始。

5

void addFirst(E e)

此方法返回在该列表的开头插入指定的元素。

6

void addLast(E e)

此方法返回将指定的元素追加到此列表的末尾。

7

void clear()

此方法从此列表中删除所有元素。

8

Object clone()

此方法返回返回此 LinkedList 的浅拷贝。

9

boolean contains(Object o)

如果此列表包含指定的元素,则此方法返回 true。

10

Iterator<E> descendingIterator()

此方法返回一个迭代器,用于反向顺序遍历此双端队列中的元素。

示例

package com.tutorialspoint;

import java.util.*;

public class LinkedListDemo {
   public static void main(String[] args) {

      // create a LinkedList
      LinkedList list = new LinkedList();

      // add some elements
      list.add("Hello");
      list.add(2);
      list.add("Chocolate");
      list.add("10");

      // print the list
      System.out.println("LinkedList:" + list);

      // add a new element at the end of the list
      list.add("Element");

      // print the updated list
      System.out.println("LinkedList:" + list);
   }
}

输出

LinkedList:[Hello, 2, Chocolate, 10]
LinkedList:[Hello, 2, Chocolate, 10, Element]

链表是一系列包含项目的链接。每个链接都包含到另一个链接的连接。链表是数组之后第二常用的数据结构。

链表表示

链表可以被可视化为节点链,其中每个节点都指向下一个节点。

Linked List Representation
  • 每个链表都包含头和节点。

  • 每个节点都存储数据和下一个元素的地址。

  • 列表的最后一个元素为 null,标记列表的结束。

链表有三种类型

  • 简单链表 - 项目导航仅向前。

  • 双向链表 - 项目可以向前和向后导航。

  • 循环链表 - 最后一个项目包含下一个元素的第一个元素的链接,而第一个元素包含前一个元素的最后一个元素的链接。

广告