LinkedList相关知识及底层链表实现原理

本文详细介绍了LinkedList作为List接口实现的特点,包括有序、可重复,以及其在增删操作上的优势。内容还深入解析了LinkedList的底层链表实现原理,包括节点结构、头尾节点定义以及元素添加的具体步骤,揭示了其在数据查询上的不足。
摘要由CSDN通过智能技术生成

LikedList集合

一、LinkedList集合存储元素特点

1)LinkedList集合实现了List接口,存储元素特点是:有序且可重复,并且集合元素都有下标,从0开始以1递增。
2)LinkedList底层是以链表为这种数据结构来存储数据
3)LinkedList集合存储元素优缺点:
优点:由于底层是以链表为数据结构,所以在增删方面速度很快,也很方便
缺点:查询数据速度较慢。
所以在选择ArrayList集合和LinkedList集合时,需要频繁对数据进行增删的话,适合使用LinkedList集合;
在需要对数据进行大量的查询时,选择ArrayList集合。
4)LinkedList没有初始化容量,也没有自动扩容机制。

二、LinkedList集合底层链表实现原理

1、LinkedList源码中的节点代码,以及头节点、尾节点和存储元素变量
1).首先,LinkedList底层是双向链表,双向链表是由一个一个节点单元连接在一起形成的,每一个节点中包含3个组成部分,上一个节点的内存地址、存储的数据、下一个节点的内存地址。如下所示:
Node<>类是LinkedList中的静态内部类,表示节点对象,其中 item用于存储数据,next存储下一个节点的内存地址,prev存储上一个节点的内存地址。

private static class Node<E> {
   //LinkedList静态内部类,链表节点对象类
            E item;//每个节点存储的数据,传入LinkedList集合的数据都是存储在每一个节点中的这个位置
            Node<E> next;//这是一个节点引用,保存指向下一个节点的内存地址
            Node<E> prev;//这也是一个节点引用,保存上一个节点的内存地址

            Node(Node
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值