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]
链表是一系列包含项目的链接。每个链接都包含到另一个链接的连接。链表是数组之后第二常用的数据结构。
链表表示
链表可以被可视化为节点链,其中每个节点都指向下一个节点。
每个链表都包含头和节点。
每个节点都存储数据和下一个元素的地址。
列表的最后一个元素为 null,标记列表的结束。
链表有三种类型
简单链表 - 项目导航仅向前。
双向链表 - 项目可以向前和向后导航。
循环链表 - 最后一个项目包含下一个元素的第一个元素的链接,而第一个元素包含前一个元素的最后一个元素的链接。