LinkedList 类

1、由双向链表实现数据存储

2、元素有序、可重复、允许多个 null 元素

3、线程不安全,没有实现同步、互斥

4、一般情况下 80% - 90% 为查询,所以大部分情况下选择 ArrayList

  底层结构 增删效率 改查效率
ArrayList 可变数组 较低 较高
LinkedList 双向链表 较高 较低

 

底层

1、维护一个双向链表,first、last 分别指向首节点、尾节点

transient Node<E> first;
transient Node<E> last;

2、每个节点(Node 对象)维护 prev、next、item

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;
    }
}

(1)prev 指向前一个节点,next 指向后一个节点,以此实现双向链表

(2)item 节点存储对象

posted @   半条咸鱼  阅读(18)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示