欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

对ArrayList和LinkedList底层实现原理详解

时间:2021-06-09 08:07:44|栏目:JAVA代码|点击:

1、说一下 ArrayList 底层实现方式?

①ArrayList 通过数组实现,一旦我们实例化 ArrayList 无参数构造函数默认为数组初始化长度为 10

②add 方法底层实现如果增加的元素个数超过了 10 个,那么 ArrayList 底层会新生成一个数组,长度为原数组的 1.5 倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。是一旦数组超出长度,就开始扩容数组。

扩容数组调用的方法

Arrays.copyOf(objArr, objArr.length + 1);

2、说一下 LinkedList 底层实现方式?

LinkedList 底层的数据结构是基于双向循环链表的,且头结点中不存放数据,如下:

ArrayList和LinkedList底层实现

既然是双向链表,那么必定存在一种数据结构――我们可以称之为节点,节点实例保存业务数据,前一个节点的位置信息和后一个节点位置信息,如下图所示:

ArrayList和LinkedList底层实现

上一篇:浅谈Java工程读取resources中资源文件路径的问题

栏    目:JAVA代码

下一篇:SpringMVC实现文件上传和下载的工具类

本文标题:对ArrayList和LinkedList底层实现原理详解

本文地址:http://www.codeinn.net/misctech/138504.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有