【最完整系列】JAVA-容器篇-LinkedList源码解析
简介 LinkedList 顾名思义其本质是一个链表,具体来说是一个双向链表,同时还有2个指针分别对应链表的头和尾。 源码 源码还是跟 ArrayList 一样,从我们常用的代码出发: List<String> a = new LinkedList<>(); a.add("sidfate"); 进入初始化源码: // LinkedList 长度 transient int size = 0 ; // 指向头结点 transient Node < E > first ; // 指向尾节点 transient Node < E > last ; public LinkedList ( ) { } 可以看到默认的构造函数空空如也,需要注意的是链表是以 Node 为基础连接起来的,Node 的结构如下: private static class Node < E > { E item ; Node < E > next ; Node < E > prev ; Node ( Node < E > prev, E element, Node < E > next ) { this.item = element ; this.next = next ; this.prev = prev ; } } Node 结构也很简单,prev 和 next 说明它是一个双向的链表,保存前后 Node 的指针