当前位置:网站首页>ArrayList 和 LinkedList 区别
ArrayList 和 LinkedList 区别
2022-08-09 22:01:00 【欣21】
ArrayList:基于数组实现;
LinkedList:基于双向链表实现;使用 Node 存储链表节点信息;
ArrayList 和 LinkedList 都实现了 List 接口,且两者都是线程不安全的
区别:
ArrayList 使用动态数组存储元素,而 LinkedList 使用双向链表来存储元素。
对于随机访问,ArrayList要优于LinkedList; 对于插入和删除操作,LinkedList优于ArrayList。
LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
ArrayList 只能用作列表;LinkedList 可以用作列表或者队列,因为它还实现了 Deque 接口。
在查询时,ArrayList 直接根据下标获取,和数组的长度无关,查询速度快;而LinkedList 则需要从头节点开始遍历,下标小于链表长度的一半时,从前往后遍历;否则从后往前遍历,查询速度慢。
在增加时,ArrayList 将新的元素添加的指定的位置时,会将插入位置后的元素依次向后复制,添加速度慢;而 LinkedList 则是可以直接加入进去,先用 n 记录 p.next ,然后 p.next = newNode ,再把 newNode.next = n;这样就实现了添加,而且速度更快。
在删除时,ArrayList 会将指定位置后的元素依次向前复制,删除速度也慢;而 LinkedList 则是将原来的 p.next 变为了p.next.next,就实现了删除,而且速度更快。
边栏推荐
- [Microservice~Nacos] Nacos service provider and service consumer
- Tencent continues to wield the "big knife" to reduce costs and increase efficiency, and free catering benefits for outsourced employees have been cut
- R语言将列表数据转化为向量数据(使用unlist函数将列表数据转化为向量数据)
- Presto Event Listener开发
- 从产品角度看 L2 应用:为什么说这是一个游乐场?
- json case
- Postgresql源码(68)virtualxid锁的原理和应用场景
- Multiple reasons for MySQL slow query
- 阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
- 为什么这么多人都想当产品经理?
猜你喜欢
leetcode 39. 组合总和(完全背包问题)
leetcode:321. 拼接最大数
This article lets you quickly understand implicit type conversion [integral promotion]!
leetcode:323. 无向图中连通分量的数目
Domestic mobile phone manufacturers once fought for it, but now it is the first to collapse...
Postgresql源码(68)virtualxid锁的原理和应用场景
xctf攻防世界 Web高手进阶区 shrine
Flask入门学习教程
Flask's routing (app.route) detailed
Good future, want to be a second new Oriental
随机推荐
【技术分享】SLA(服务等级协议)原理与配置
国内手机厂商曾为它大打出手,如今它却最先垮台……
Solution: Edu Codeforces 109 (div2)
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
leetcode:323. 无向图中连通分量的数目
18-GuliMall 压力测试与性能监控
力扣 1413. 逐步求和得到正数的最小值
用户代码未处理MetadataException
Presto Event Listener开发
leetcode 38. 外观数列
B. Neighbor Grid
Redis
JSON 基本使用
重装系统后新建文本文档打不开怎么办
Flask之路由(app.route)详解
FileZilla搭建FTP服务器图解教程
One Pass 2074: [21CSPJ Popularization Group] Candy
小程序+自定义插件的关键性
R语言拟合ARIMA模型并使用拟合模型进行预测推理:使用forecast函数计算ARIMA模型未来值(包含时间点、预测值、两个置信区间)
mysql 找不到或无法加载已注册的 .Net Framework Data Provider。