jdk7.0源码解析LinkedList底层实现原理
一、LinkedList的概述
LinkedList是List接口的实现类,底层用双向链表实现,有序、有下标、元素可以重复;线程不安全,因为底层方法为非同步。
二、LinkedList的存储结构
底层通过双向链表来实现,链表的每一个节点为Node,除了自身的数据域之外,还有一个前指针(prev)和后指针(next),分别指向前驱节点和后续节点(没有就为null)。同时双向链表还有一个first指针指向头结点,和 last指针指向尾节点,实现结构如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPueku8h-1586449403207)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1572943652483.png)]](https://i-blog.csdnimg.cn/blog_migrate/75ba6a8b60cfce82250ee7e924903318.png)
三、LinkedList内部实现原理机制(源码解析)
-
LinkedList的基本元素
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable { // 记录集合中元素的个数 transient int size = 0; // 指向头结点 transient Node<E> first; //指向尾节点 transient Node<E> last; -
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; } } -
LinkedList中的构造方法:
// 无参数的构造方法 public LinkedList() { } /* 将Collection类型的集合作为参数构建LinkedList 同时将Collection集合中的所有元素存储在构建的 LinkedList集合中,调用addAll方法 */ public LinkedList(Collection<? extends E> c) { this(); addAll(c); } <

本文深入剖析了Java中LinkedList的底层实现,详细介绍了其双向链表结构,包括节点构造、头尾指针机制,以及add、remove、get等核心方法的实现原理。
最低0.47元/天 解锁文章
730

被折叠的 条评论
为什么被折叠?



