LinkedList源码分析

众所周知,LinkedList的底层是使用链表来存储实际的数据的,本文来探讨LinkedList的底层源码

LinkedList中的Node类

ini 复制代码
    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中的核心数据

ini 复制代码
transient int size = 0;  
  
transient Node<E> first;  

transient Node<E> last;

由上面的代码可知,LinkedList是一个具有头节点和尾节点的链表。

而且这些数据在Java默认的序列化中都不参与。

LinkedList初始化

空参构造

csharp 复制代码
public LinkedList() {  
}

LinkedList空参构造什么也没做。

通过集合构造

scss 复制代码
    public LinkedList(Collection<? extends E> c) {
        this();
        addAll(c);
    }

先调用空参构造,再调用addAll()添加数据。

增删改查

LinkedList不像ArrayList具有扩容机制,因此增删改查就是普通的链表增删改查。

相关推荐
小袁拒绝摆烂10 小时前
多表关联大平层转JSON树形结构
java·json
IT_陈寒10 小时前
Vite的public文件夹放静态资源?这坑我替你踩了
前端·人工智能·后端
浮游本尊10 小时前
合同同步逻辑
后端
子兮曰10 小时前
别让爬虫白嫖你的导航站了:纯免费,手把手实现加密字体防爬
前端·javascript·后端
阿苟10 小时前
JAVA重点难点
后端
uzong10 小时前
TIOBE 指数:2026 年编程语言排行榜
后端
ja哇10 小时前
大厂面试高频八股
java·面试·职场和发展
小村儿10 小时前
连载06 - Hooks 源码深度解析:Claude Code 的确定性自动化体系
前端·后端·ai编程
用户83562907805111 小时前
使用 Python 设置 Excel 数据验证
后端·python
yoyo_zzm11 小时前
Laravel6.x新特性全解析
java·spring boot·后端