ArrayList和LinkedList的区别
发布日期:2022-02-05 04:27:55
浏览次数:1
分类:技术文章
本文共 2187 字,大约阅读时间需要 7 分钟。
ArrayList和LinkedList的区别
引言
ArrayList和LinkedList 都是对List接口的实现,是常用的两种存储结构,那么它们有哪些区别呢。
区别
1、ArrayList是实现了基于Array(动态数组)的数据结构,LinkedList基于Link(链表)的数据结构。
前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列。
2、当随机访问List时(get和set操作),ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。
3、当对数据进行增加和删除的操作时(add和remove操作),LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。
4、从利用效率来看,ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;
而LinkedList自由性较高,能够动态的随数据量的变化而变化(扩容),但是它不便于使用。5、ArrayList主要控件开销在于需要在List列表预留一定空间;而LinkList主要控件开销在于需要存储结点信息以及结点指针信息。
源码:
package com.demo.test;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;/** * * @author liu.hb *ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 */public class ListTest { static final int T = 500000; /** * * @param list 参数 * @return 列表添加数据需要的时间 */ static long timeList(List
运行结果
我们可以看出ArrayList读取数据效率更高,LinkedList添加或删除数据效率更高。转载地址:https://blog.csdn.net/weixin_43287508/article/details/87002475 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月08日 23时17分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
springcloud之hystrix熔断器-Finchley.SR2版
2019-04-29
本地Mysql和RDS搭建主从环境
2019-04-29
SqlServer 将纯数字的时间转换为DateTime
2019-04-29
实现厘米级、低功耗精确定位,Kolmostar获元实资本领投1000万美元融资 ...
2019-04-29
在家怎么用手机连接到电视?
2019-04-29
好程序员web前端教程分享js文件引用编码方式
2019-04-29
阿里云杨敬宇:5G时代,边缘计算将发挥更大价值 ...
2019-04-29
### avoid read-on-write
2019-04-29
HBase+Spark技术双周刊 第四期
2019-04-29
突然上万片晶圆被污染,台积电损失惨重
2019-04-29
Centos7.6下安装Python3.7
2019-04-29
Quick BI取数模型深度剖析
2019-04-29
王传福:电动汽车开始由政策与市场双轮驱动|电动车百人会2019 ...
2019-04-29
直播平台建设中必不可少的防盗机制,直播间搭建的安全防护 ...
2019-04-29
SAP中smartform中的图片如何在不同服务器之间传递 ...
2019-04-29
### how to write file faster
2019-04-29
未来几年,谁能拯救手机拍照功能?
2019-04-29