当前位置:编程学习 > JAVA >>

LinkedList为什么不支持高效的随机访问

其他:LinkedList是由链表实现的,针对元素的插入删除比较高效,但是不支持随机访问,只能一个元素一个元素的遍历,数组根据下标支持随机访问。 这个问题你要是了解了数据结构的话就比较清楚了
LinkedList的实现方式是这样的:
1、LinkedList他在内存里面是离散的,不是连续。
2、LinkedList里面的每一个元素都有下一个元素的引用。
3、当你想插入某个元素的时候,比如:已有一个LinkedList里面是 A B C三个元素(也就是,A的引用里面放着B,B的引用里面放着C,C的引用里面是null)现在你要在A和B之间插入D,他的做法是这样的将A的引用指向D,D引用指向B,B的引用依然指向C,C的引用还是null。
所以他插入的是非常的快,就是改一下引用。
4、当你遍历的时候他会这样做,先将A遍历出来然后找A的引用就是B,再将B遍历出来再找B的引用,将C遍历出来,所以遍历也很快。
 
下面就是关键的问题了
=====================================================
那关键的问题我想随即访问一个元素,比如说有1W个元素LinkedList,你现在要访问第9999个元素,他是这么访问的,他先将第一个元素拿出来看下不是,然后找A的引用,再将B拿出来还是不是,然后再找,他就这样一直找啊找,找啊找,在他找第9998还是不是在把9998的引用指向的元素拿出,oh year找到了,然后给你。所以他实现随即访问就比较慢了,尤其是找最后一个元素的时候。

上一个:eclipse出现这种问题怎么解决
下一个:erp系统是什么。在j2ee方面。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,