Java - LinkedList类


Java - LinkedList类

LinkedList类扩展了AbstractSequentialList并实现了List接口。它提供了一个链表数据结构。

以下是LinkedList类支持的构造函数。

Sr.No. 构造函数和描述
1

LinkedList()

此构造函数构建一个空链表。

2

LinkedList(Collection c)

此构造函数构建一个链接列表,该列表使用集合c的元素进行初始化

除了从其父类继承的方法之外,LinkedList还定义了以下方法

Sr.No. 方法和描述
1

void add(int index,Object element)

将指定元素插入此列表中的指定位置索引。如果指定的索引超出范围(索引<0 || index> size()),则抛出IndexOutOfBoundsException。

2

boolean add(Object o)

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

3

boolean addAll(Collection c)

将指定集合中的所有元素按指定集合的​​迭代器返回的顺序附加到此列表的末尾。如果指定的集合为null,则抛出NullPointerException。

4

boolean addAll(int index,Collection c)

从指定位置开始,将指定集合中的所有元素插入此列表。如果指定的集合为null,则抛出NullPointerException。

5

void addFirst(Object o)

在此列表的开头插入给定元素。

6

void addLast(Object o)

将给定元素追加到此列表的末尾。

7

void clear()

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

8

Object clone()

返回此LinkedList的浅表副本。

9

boolean contains(Object o)

如果此列表包含指定的元素,则返回true。更正式地,当且仅当此列表包含至少一个元素e时才返回true(o == null?e == null:o.equals(e))。

10

Object get(int index)

返回此列表中指定位置的元素。如果指定的索引超出范围(索引<0 || index> = size()),则抛出IndexOutOfBoundsException。

11

Object getFirst()

返回此列表中的第一个元素。如果此列表为空,则抛出NoSuchElementException。

12

Object getLast()

返回此列表中的最后一个元素。如果此列表为空,则抛出NoSuchElementException。

13

int indexOf(Object o)

返回指定元素第一次出现的列表中的索引,如果列表不包含此元素,则返回-1。

14

int lastIndexOf(Object o)

返回指定元素最后一次出现的列表中的索引,如果列表不包含此元素,则返回-1。

15

ListIterator listIterator(int index)

从列表中的指定位置开始,返回此列表中元素的列表迭代器(按正确顺序)。如果指定的索引超出范围(索引<0 || index> = size()),则抛出IndexOutOfBoundsException。

16

Object remove(int index)

删除此列表中指定位置的元素。如果此列表为空,则抛出NoSuchElementException。

17

boolean remove(Object o)

删除此列表中第一次出现的指定元素。如果此列表为空,则抛出NoSuchElementException。如果指定的索引超出范围(索引<0 || index> = size()),则抛出IndexOutOfBoundsException。

18

Object removeFirst()

从此列表中删除并返回第一个元素。如果此列表为空,则抛出NoSuchElementException。

19

Object removeLast()

从此列表中删除并返回最后一个元素。如果此列表为空,则抛出NoSuchElementException。

20

Object set(int index, Object element)

用指定的元素替换此列表中指定位置的元素。如果指定的索引超出范围(索引<0 || index> = size()),则抛出IndexOutOfBoundsException。

21

int size()

返回此列表中的元素数。

22

Object [] toArray()

以正确的顺序返回包含此列表中所有元素的数组。如果指定的数组为null,则抛出NullPointerException。

23

Object [] toArray(Object [] a)

以正确的顺序返回包含此列表中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。

实例

以下程序说明了LinkedList支持的几种方法

import java.util.*;
public class LinkedListDemo {

   public static void main(String args[]) {
      // create a linked list
      LinkedList ll = new LinkedList();

      // add elements to the linked list
      ll.add("F");
      ll.add("B");
      ll.add("D");
      ll.add("E");
      ll.add("C");
      ll.addLast("Z");
      ll.addFirst("A");
      ll.add(1, "A2");
      System.out.println("Original contents of ll: " + ll);

      // remove elements from the linked list
      ll.remove("F");
      ll.remove(2);
      System.out.println("Contents of ll after deletion: " + ll);

      // remove first and last elements
      ll.removeFirst();
      ll.removeLast();
      System.out.println("ll after deleting first and last: " + ll);

      // get and set a value
      Object val = ll.get(2);
      ll.set(2, (String) val + " Changed");
      System.out.println("ll after change: " + ll);
   }
}

输出

Original contents of ll: [A, A2, F, B, D, E, C, Z]
Contents of ll after deletion: [A, A2, D, E, C, Z]
ll after deleting first and last: [A2, D, E, C]
ll after change: [A2, D, E Changed, C]