Java中的LinkedList


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

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

序号构造函数及描述
1LinkedList( )
此构造函数构建一个空的链表。
2LinkedList(Collection c)
此构造函数构建一个链表,该链表用集合 c 中的元素初始化。

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

序号方法及描述
1void add(int index, Object element)
在此列表的指定位置 index 插入指定的元素。如果指定的 index 超出范围 (index < 0 || index > size()),则抛出 IndexOutOfBoundsException。
2boolean add(Object o)
将指定的元素追加到此列表的末尾。
3boolean addAll(Collection c)
将指定集合中的所有元素追加到此列表的末尾,其顺序与指定集合的迭代器返回的顺序相同。如果指定的集合为空,则抛出 NullPointerException。
4boolean addAll(int index, Collection c)
将指定集合中的所有元素插入到此列表中,从指定位置开始。如果指定的集合为空,则抛出 NullPointerException。
5void addFirst(Object o)
在此列表的开头插入给定的元素。
6void addLast(Object o)
将给定的元素追加到此列表的末尾。
7void clear()
从此列表中删除所有元素。
8Object clone()
返回此 LinkedList 的浅拷贝。
9boolean contains(Object o)
如果此列表包含指定的元素,则返回 true。更正式地说,当且仅当此列表至少包含一个元素 e,使得 (o==null ? e==null : o.equals(e)) 时,才返回 true。
10Object get(int index)
返回此列表中指定位置的元素。如果指定的 index 超出范围 (index < 0 || index >= size()),则抛出 IndexOutOfBoundsException。
11Object getFirst()
返回此列表中的第一个元素。如果此列表为空,则抛出 NoSuchElementException。
12Object getLast()
返回此列表中的最后一个元素。如果此列表为空,则抛出 NoSuchElementException。
13int indexOf(Object o)
返回此列表中指定元素第一次出现的索引,如果列表不包含此元素,则返回 -1。
14int lastIndexOf(Object o)
返回此列表中指定元素最后一次出现的索引,如果列表不包含此元素,则返回 -1。
15ListIterator listIterator(int index)
返回此列表中元素的列表迭代器(按正确顺序),从列表中的指定位置开始。如果指定的 index 超出范围 (index < 0 || index >= size()),则抛出 IndexOutOfBoundsException。
16Object remove(int index)
从此列表中删除指定位置的元素。如果此列表为空,则抛出 NoSuchElementException。
17boolean remove(Object o)
从此列表中删除指定元素的第一次出现。如果此列表为空,则抛出 NoSuchElementException。如果指定的 index 超出范围 (index < 0 || index >= size()),则抛出 IndexOutOfBoundsException。
18Object removeFirst()
删除并返回此列表中的第一个元素。如果此列表为空,则抛出 NoSuchElementException。
19Object removeLast()
删除并返回此列表中的最后一个元素。如果此列表为空,则抛出 NoSuchElementException。
20Object set(int index, Object element)
用指定的元素替换此列表中指定位置的元素。如果指定的 index 超出范围 (index < 0 || index >= size()),则抛出 IndexOutOfBoundsException。
21int size()
返回此列表中元素的数量。
22Object[] toArray()
返回一个包含此列表中所有元素的数组,其顺序正确。如果指定的数组为空,则抛出 NullPointerException。
23Object[] 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]

更新于: 2020-06-25

396 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告