📜  Java.util.LinkedList类(1)

📅  最后修改于: 2023-12-03 15:01:35.566000             🧑  作者: Mango

Java.util.LinkedList类

Java.util.LinkedList类是Java编程语言中的一种集合类型,是一个双向链表实现的集合类。该类继承了Java.util.AbstractSequentialList类,并且实现了Java.util.List、Java.util.Deque、Java.lang.Cloneable、Java.io.Serializable接口。它可以用于保存一组有序的元素,支持增加、删除、修改和获取集合中的元素,并且提供了一些方便的方法来操作集合。

特点
  1. 底层采用双向链表实现,支持高效的插入和删除操作。
  2. 支持快速的随机访问,但复杂度为O(n),效率低于ArrayList。
  3. 可以作为队列、栈等数据结构的底层实现。
  4. 非线程安全,不支持多线程并发访问。
  5. 支持null元素。
构造函数

Java.util.LinkedList类提供了多个构造函数,可以根据需要使用不同的方式初始化集合对象。

LinkedList()

创建一个空的双向链表对象。

LinkedList<E> list = new LinkedList<>();
LinkedList(Collection<? extends E> c)

创建一个包含指定集合中所有元素的双向链表对象。

List<String> list1 = new ArrayList<>();
list1.add("Java");
list1.add("Python");
LinkedList<String> list2 = new LinkedList<>(list1);
LinkedList(E[] e)

创建一个包含指定数组中所有元素的双向链表对象。

String[] array = {"Java", "Python"};
LinkedList<String> list = new LinkedList<>(array);
常用方法

以下是Java.util.LinkedList类中的一些常用方法。

添加元素

添加元素到链表的末尾。

boolean add(E e)
void add(int index, E element)
void addFirst(E e)
void addLast(E e)

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.add(1, "C++");
list.addFirst("JavaScript");
list.addLast("Ruby");
获取元素

获取链表中指定位置的元素。

E get(int index)
E getFirst()
E getLast()

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.add("C++");
String str = list.get(1);
删除元素

删除链表中指定位置的元素。

E remove()
E remove(int index)
E removeFirst()
E removeLast()

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.remove(1);
list.removeLast();
修改元素

修改链表中指定位置的元素。

E set(int index, E element)

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.set(1, "C++");
查询元素

查询链表中是否包含指定元素。

boolean contains(Object o)

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
if (list.contains("Java")) {
    System.out.println("链表中包含Java");
}
获取链表长度
int size()

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
int size = list.size();
清空链表
void clear()

LinkedList<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.clear();