社区
Java SE
帖子详情
为什么Java中数组比链表的查询速度快?
James-Blackhu
2020-08-16 11:02:09
为什么Java中数组比链表的查询速度快?内部的查询机制是什么??拜托大佬们举个栗子来简单指导一下感谢
...全文
6492
7
打赏
收藏
为什么Java中数组比链表的查询速度快?
为什么Java中数组比链表的查询速度快?内部的查询机制是什么??拜托大佬们举个栗子来简单指导一下感谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kris2088
2020-08-18
打赏
举报
回复
数组,内存连续,可以通过地址增量获取 链表,内存多数不连续,需要遍历,速度会慢很多 数组结构决定了,数据读取快,写入扩容会很慢,需要搬数据 链表则相反
唐僧爱程序
2020-08-17
打赏
举报
回复
数组的内存单元连续的 查找很快,链表相反
KeepSayingNo
2020-08-17
打赏
举报
回复
数组可以立马找到第几个元素,链表就不行了
sunyiz
2020-08-17
打赏
举报
回复
2
在一楼的例子基础上细化一下: 1、数组中查询: 10个人排成一排,身上都贴好了编号(比如1~10), 你点名喊:“4号”,4号立刻就会站出来, 喊:“8号”,8号立刻就会站出来, 因为大家身上都有编号,知道哪个号对应哪个人 2、链表中查询: 10个人手拉手站成一排,但是没有编号,每个人只知道自己的前一个人和后一个人是谁 你点名喊:“4号”,会从第一个人开始依次报数:“1”、“2”、“3”、“4”, 报到“4”的人才会知道自己是4号,才能站出来 所以,按指定位置查询时链表会比数据慢一些 —————————————————————————————— 但是链表的插入/删除效率要高于数组: 1、数组中插入: 10个人排成一排,身上都贴好了编号(比如1~10) 你现在想让一个人插入进入,排在 3 的位置 此时需要做什么呢?需要从3号开始,把每个人身上的编号撕下来, “3号”编号牌交给新来的,“4号”编号牌交给原来的“3号”…… 依次直到最后一个人,还要给他做一个新的编号牌:“11号” 2、链表中插入: 10个人手拉手站成一排,但是没有编号,每个人只知道自己的前一个人和后一个人是谁 你现在想让一个人插入进入,排在 3 的位置 此时开始报数,报到“3”的人和前一个人(“2”)松开手, 然后新来的人站进去和原来的“2”位置“3”位置的人拉上手,这三人再看一眼记住自己前后的人是谁, OK 链表的插入过程显然比数组中插入要简便的多
James-Blackhu
2020-08-17
打赏
举报
回复
数组和链表增删问题:是不是可以理解为--->增加一个,数组必须一个个遍历(导致增加变慢),增加在最后,删除的时候如果删除了中间的其他的一个一个需要往前面移动,所以速度慢。 链表增加就相当于随便搬了台机子放在机房,不管位置??删除的是后,直接搬走想要搬走的那台机子就可以了??
Mr_布鲁斯
2020-08-17
打赏
举报
回复
数组结构在堆内存中存放的位置是连续的,链表结构位置则是分散的,通过指针来指向下一个数据节点的位置。当进行查询操作时,数组结构中可以根据下标直接获取某数据节点的地址,而链表结构需要通过遍历每个节点来获取需要查询的数据节点的位置。 例如:某机房内,十台机器编号1-10按顺序排成一排,想找第5台找起来很方便;十台机器编号并且分散在机房的不同位置,就需要一台一台去遍历,直到找到第5台
明白畅达
2020-08-16
打赏
举报
回复
数组就像身上编了号站成一排的人,要找第10个人很容易,根据人身上的编号(下标)很快就能找到。增删慢 链表就像手牵着手站成一圈的人,要找第10个人不容易,必须从第一个人一个个数过去。增删快
java
实现空
数组
,
数组
与
链表
的区别,
数组
、
链表
java
实现
本文介绍了如何在
Java
中
实现空
数组
,并探讨了
数组
与
链表
的主要区别。
数组
由于内存地址连续,
查询
速度快
但删增操作慢;而
链表
在内存
中
地址不连续,适合频繁的增删操作。
ArrayList具有
数组
的
查询
速度快
的优点以及增删速度慢的缺点
本文详细对比了ArrayList和LinkedList两种数据结构的特点和应用场景。ArrayList基于
数组
实现,
查询
速度快
但增删操作慢;而LinkedList基于双向
链表
,增删操作快但
查询
速度慢。适合于不同场景的应用。
数组
与
链表
的区别深入理解
本文深入探讨了
链表
(包括单向
链表
、双向
链表
和循环
链表
)与
数组
的存储结构和优缺点。
数组
在
查询
上
速度快
,但增删操作慢且长度固定;
链表
则提供灵活的内存管理,增删操作高效,但查找效率较低。思考如何结合两者优点,如
Java
的HashMap类,以实现更高效的存储结构。
Java
数据结构
数组
,
链表
和树的区别解析教程;
本文深入解析了
Java
中
数组
、
链表
和树三种基本数据结构的特点。
数组
查询
速度快
但增删操作复杂;
链表
增删操作简单快捷,但
查询
效率较低;树结构,特别是红黑树,提供高效的查找性能。适合初学者和进阶者理解各种数据结构的优缺点。
java
数组
模拟
链表
_
java
数组
模拟
链表
本文探讨了
Java
中
数组
和
链表
的存储方式,重点分析了
数组
存储在堆内存
中
的特性,并通过示例代码展示了
数组
的初始化和使用过程。同时,文章比较了
数组
和
链表
在操作效率上的差异。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章