栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LinkedList源码分析(无参构造方法创建,分析add()方法)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LinkedList源码分析(无参构造方法创建,分析add()方法)

集合历来是面试热点,对于我们来说,如何轻松应对面试官的“步步紧逼”呢?那当然是看源码拉~

作者在此以LinkedList的简单元素添加为例,步步分析如何将一个元素添加至LinkedList的集合中~

源码在手,天下我有!

public class LinkedListAddAnalyze {
    public static void main(String[] args) {
        List list = new LinkedList();
        for (int i = 0; i < 20; i++) {
            list.add(i);
        }
    }
    
}

结论:

1、LinkedList为双向链表,其实现底层是通过内部维护的Node内部类实现,其Node内部类中包含有三个成员属性,分别为当前元素Object类型的item,以及存储上个Node地址的prev和下个Node地址的next;

2、LinkedList类中存储了Node类型的first对象和Node类型的last对象,即为链表的第一个元素和最后一个元素,通过get等方法取出元素时,通过first和last对象进行遍历;

3、通过LinkedList源码可以看出,双向链表优势长于添加元素,尤其是在头尾添加,但随机读取很慢,因为必须通过Node一个个遍历,而ArrayList内部的数组可以直接通过计算获取对应元素的位置,故如果需要频繁增添,且读取较少,那么可以考虑选用LinkedList

以上为个人总结,若有错误请大佬们指出~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号