数组的Access 效率是 O(1)

127 阅读1分钟

数组为什么查找元素效率比较高?

不错,有很多面试官在面试的时候都会问到这个问题,有一部分应聘者答的很好,但也有一部分应聘者答的很一般。

如果你是这样回答的:数组之所以查找效率高,是因为它有下标。对不起,我只能给你50分。

针对于这样的问题,我们应该怎么回答呢,实际上这个需要从数组这种数据结构存储元素特点的方面进行解说:

第一:Java的数组中存储的每个元素类型一致,也就是说每个元素占用的空间大小相同。

第二:Java的数组中存储的每个元素在空间存储上,内存地址是连续状态的。

第三:通常首元素的内存地址作为整个数组对象的内存地址,可见我们是知道首元素内存地址的。

第四:再加上数组中的元素是有下标的,有下标就可以计算出被查找的元素和首元素的偏移量。

综上所述,实际上在数组中查找元素是可以通过数学表达式计算被查找元素的内存地址的,通过内存地址可以直接定位该元素。也就是说数组中有100个元素和有100万个元素,实际上在查找方面