一个面试问题,我无法回答,也无法在线找到任何相关答案。
假设一个arraylist中有10000个数据,我想找到当前位于第5000个索引上的数字,arraylist如何知道这些索引并以恒定的时间给出结果?
因为如果遍历数组列表以查找数据,则将花费线性时间而不是恒定时间。
提前致谢。
支持的存储ArrayList是一个数组。无论是存储原始值还是对象引用,数组中的所有对象在内存中的顺序都是连续的。
对于数组访问,编译器所需要做的就是根据初始地址和所需索引(即O(1))计算正确的内存地址的指令。然后,它可以直接转到该计算出的地址。没有遍历,因此不是O(n)。
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |