随机访问和快速访问

我们都知道ArrayList接口实现了一个RandomAccess接口,可以快速随机访问,而LinkedList只能顺序访问,那么这是为什么呢?

ArrayList底层的数据结构是Object[]存储,数组在内存分配里,是一段连续的内存空间,譬如分配的内存地址是002,003,004,005四个地址,那么我们如果要随机访问角标为3的数据,只需要访问002+3=005的数据就行了,这就是快速随机访问。

而 LinkedList是链表结构,在内存里是不连续的,相邻的数据之间用指针指向即可。如001<->003<->004<->005.那么此时,我们要访问角标为3的数据,就只能从第一个数据开始依次迭代,找到第4个数据,这就是顺序访问

原文地址:https://www.cnblogs.com/zjting/p/12839637.html