一、基本介绍
1、LinkedList 实现了双向链表和双端队列特点
2、可以添加任意元素(元素可以重复),包括null
3、线程不安全,没有实现同步
二、LinkedList的底层操作机制
1、LinkedList 底层维护了一个双向链表
2、LinkedList 中维护了两个属性 first 和 last 分别指向首节点和尾节点
3、每个节点(Node对象),里面又维护了 prev、next、item 三个属性,其中通过 prev 指向前一个,通过 next 指向后一个节点。最终实现双向链表
4、所以 LinkedList 的元素添加和删除,不是通过数组完成的,相对来说效率较高
模拟一个简单的双向链表:
import com.sun.javafx.scene.NodeEventDispatcher;
public class LinkedList01 {
public static void main(String[] args) {
Node zs = new Node("张三");
Node ls = new Node("李四");
Node ll = new Node("老六");
//链接三个节点,形成双向链表
//zx -> ls -> ll
zs.next = ls;
ls.next = ll;
//ll -> ls -> zs
ll.pre = ls;
ls.pre = zs;
Node first =