ArrayList 与 LinkedList
ArrayList 与 LinkedList
ArrayList 与 LinkedList 的区别
1.底层数据结构不同:ArrayList 的底层是基于数组来实现的,而 LinkedList 底层是基于链表实现的;(可以理解为 ArrayList 与 LinkedList 的区别实际上就是数组和链表的区别)
2.适用场景不同:ArrayList 更适合于使用随机查较多的场景,LinkedList 更适合于使用随机插入较多的场景;
.查询、插入、删除的时间复杂度不同:由于 ArrayList 是基于索引的数据接口,它的底层是基于数组的,可以随机读取,所以其查询的时间复杂度为,而插入和删除的时间复杂度为;LinkedList 是以元素列表的形式存储数据的,每一个元素和它的前一个元素和后一个元素连接在一起,它的底层是基于链表的,所以其查询的时间复杂度为,插入和删除的时间复杂度为;
4.ArrayList 实现了 List 接口,LinkedList 也实现了 List 接口,除此之外,LinkedList 还实现了 Deque 接口,所以 LinkedList 还可以当作队列来用;
5.LinkedList 比 ArrayList 更占内存,因为 LinkedList 为每一个节点存储了两个引用,一个指向前一个元素,一个指向后一个元素。
ArrayList
ArrayList 的内部结构其实就是数组(一块连续的存储空间)。实现了 List 接口。
当我们创建一个空的 ArrayList 时,它会使用默认容量(当前为 10)初始化其后备数组,在该数组未满时,其添加操作是非常快的,但是随着其后备数组容量的增加,添加操作之前可能还需进行一次扩容操作,扩容机制是将原数组的内存空间长度扩容至原来的 1.5 倍。
通常,当需要 List 实现时,ArrayList 是许多开发人员的默认选择。事实上,当读取次数远远超过写入次数时,这是一个非常明智的选择。
LinkedList
LinkedList 的内部结构其实是一个双向链表(不连续的存储空间)。实现了 List 和 Deque 接口。
链表的每个节点是一个 ode,节点中有 个属性:
-
item : 实际存放的内容;
-
prev : 指向前一节点的指针;
-
next : 指向后一节点的指针。
当添加率远高于读取率时,LinkedList 更适合。 此外,当大多数时候我们想要第一个或最后一个元素时,它可以用于读取密集的场景。值得一提的是,LinkedList 还实现了 Deque 接口——支持对集合两端的高效访问。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上一篇:数据库日期毫秒转换
下一篇:英文名字大全(男篇)(ZT)
推荐阅读
留言与评论(共有 18 条评论) |
本站网友 三峡游戏中心 | 7分钟前 发表 |
此外,当大多数时候我们想要第一个或最后一个元素时,它可以用于读取密集的场景 | |
本站网友 雷火灸 | 11分钟前 发表 |
LinkedList LinkedList 的内部结构其实是一个双向链表(不连续的存储空间) | |
本站网友 华业玫瑰东方户型图 | 24分钟前 发表 |
此外,当大多数时候我们想要第一个或最后一个元素时,它可以用于读取密集的场景 | |
本站网友 bbx | 0秒前 发表 |
通常,当需要 List 实现时,ArrayList 是许多开发人员的默认选择 | |
本站网友 一厘米多长 | 19分钟前 发表 |
插入 | |
本站网友 卵巢性不孕 | 12分钟前 发表 |
通常,当需要 List 实现时,ArrayList 是许多开发人员的默认选择 | |
本站网友 风湿病治疗 | 6分钟前 发表 |
删除的时间复杂度不同:由于 ArrayList 是基于索引的数据接口,它的底层是基于数组的,可以随机读取,所以其查询的时间复杂度为,而插入和删除的时间复杂度为;LinkedList 是以元素列表的形式存储数据的,每一个元素和它的前一个元素和后一个元素连接在一起,它的底层是基于链表的,所以其查询的时间复杂度为,插入和删除的时间复杂度为; 4.ArrayList 实现了 List 接口,LinkedList 也实现了 List 接口,除此之外,LinkedList 还实现了 Deque 接口,所以 LinkedList 还可以当作队列来用; 5.LinkedList 比 ArrayList 更占内存,因为 LinkedList 为每一个节点存储了两个引用,一个指向前一个元素,一个指向后一个元素 | |
本站网友 唐镇房价 | 11分钟前 发表 |
ArrayList ArrayList 的内部结构其实就是数组(一块连续的存储空间) | |
本站网友 绿山咖啡 | 11分钟前 发表 |
当添加率远高于读取率时,LinkedList 更适合 | |
本站网友 搜狗输入法智慧版 | 6分钟前 发表 |
ArrayList ArrayList 的内部结构其实就是数组(一块连续的存储空间) | |
本站网友 漂亮网页 | 17分钟前 发表 |
实现了 List 接口 | |
本站网友 工行信用卡商城 | 0秒前 发表 |
当添加率远高于读取率时,LinkedList 更适合 | |
本站网友 在线交易 | 21分钟前 发表 |
插入 | |
本站网友 云南电信营业厅 | 0秒前 发表 |
实际存放的内容; prev | |
本站网友 未来架构师 | 7分钟前 发表 |
实现了 List 接口 | |
本站网友 龙卷 | 13分钟前 发表 |
LinkedList LinkedList 的内部结构其实是一个双向链表(不连续的存储空间) | |
本站网友 中央经济工作会议报告 | 19分钟前 发表 |
指向前一节点的指针; next |