Linkedlist是线性数据结构,其中元素不存储在连续的位置,每个元素都是具有数据部分和地址部分的独立对象。元素使用指针和地址进行链接。每个元素被称为节点。由于插入和删除的动态性和易用性,它们优于阵列。它也有一些缺点,比如节点不能直接访问,我们需要从头开始,然后通过链接到达我们希望访问的节点。

为了将元素存储在链表中,我们使用一个双向链表,它提供了一个线性数据结构,并且还用于继承一个抽象类并实现list和deque接口。

在Java中,LinkedList类实现了列表接口。LinkedList类也包含像其他java集合一样的各种构造函数和方法。

Java LinkedList的构造函数:

1、LinkedList():用于创建一个空的链表。

2、LinkedList(Collection C):用于创建一个有序列表,其中包含集合迭代器返回的指定集合的所有元素。

// Java code for Linked List implementation
import java.util.*;
public class Test
{
public static void main(String args[])
{
// Creating object of class linked list
LinkedListobject = new LinkedList();
// Adding elements to the linked list
object.add("A");
object.add("B");
object.addLast("C");
object.addFirst("D");
object.add(2, "E");
object.add("F");
object.add("G");
System.out.println("Linked list : " + object);
// Removing elements from the linked list
object.remove("B");
object.remove(3);
object.removeFirst();
object.removeLast();
System.out.println("Linked list after deletion: " + object);
// Finding elements in the linked list
boolean status = object.contains("E");
if(status)
System.out.println("List contains the element 'E' ");
else
System.out.println("List doesn't contain the element 'E'");
// Number of elements in the linked list
int size = object.size();
System.out.println("Size of linked list = " + size);
// Get and set elements from linked list
Object element = object.get(2);
System.out.println("Element returned by get() : " + element);
object.set(2, "Y");
System.out.println("Linked list after change : " + object);
}
}

输出:

Linked list : [D, A, E, B, C, F, G]

Linked list after deletion: [A, E, F]

List contains the element 'E'

Size of linked list = 3

Element returned by get() : F

Linked list after change : [A, E, Y]

Java LinkedList的方法:

1、int size():它返回此列表中元素的数量。

2、void clear():它删除列表中的所有元素。

3、Object clone():它用于制作现有链接列表的副本。

4、Object set(int index,Object element):它用于用新元素替换列表中的现有元素。

5、boolean contains(Object element):如果元素存在于列表中,则返回true。

6、boolean add(Object element):它将元素附加到列表的末尾。

7、void add(int index,Object element):它将元素插入列表中'index'位置。

8、boolean addAll(Collection C):它将一个集合追加到链接列表。

9、boolean addAll(int index,Collection C):它将一个集合追加到指定位置的链表中。

10、void addFirst(Object element):它将元素插入列表的开头。

11、void addLast(Object element):它将元素附加在列表的末尾。

12、Object get(int index):它返回列表中位置'index'处的元素。如果索引超出了列表的范围,它会抛出'IndexOutOfBoundsException'。

13、Object getFirst():它返回链表的第一个元素。

14、Object getLast():它返回链接列表的最后一个元素。

15、int indexOf(Object element):如果找到元素,它将返回元素第一次出现的索引。否则,它返回-1。

16、int lastIndexOf(Object element):如果找到元素,它将返回元素最后一次出现的索引。否则,它返回-1。

17、Object remove():它用于从列表头部删除并返回元素。

18、Object remove(int index):它删除此列表中位置'index'处的元素。如果列表为空,它会抛出'NoSuchElementException'。

19、boolean remove(Object O):它用于从链表中移除一个特定的元素并返回一个布尔值。

20、Object removeLast():它用于删除并返回链接列表的最后一个元素。