您的位置 首页 > 数码极客

【数组成员引用下标超出定义范围】面试官:数组查询效率为什么高?我:因为有下标。 哈哈

很多程序员不知道数组查询的效率为什么这么高,有下标,可以通过下标直接找到元素,然后得到元素里面的值【遮住脸】【遮住脸】。

这样的回答对于面试官来说,是不满意的工资直接降低一个等级,那么今天我们就来具体聊聊,数组为什么可以号称是java中查询效率最高的数据结构。

直接进入主题,数组效率高的原因:

1、数组的内存地址是连续的。

2、数组存储的元素类型是一致的,所以每个元素占用的内存大小是一样的。

3、数组的第一个元素内存地址作为整个数组的引用。

通过上面固定的三个条件,我们就可以根据传入的下标,通过一个数学公式,直接得到下标的内存地址,就可以获取里面的值了。

所以数组的时间复杂度是o(1)。不管你查询的下标是0还是10000,所需要的查询时间都是一样的,直接通过一个数学公式获取到下标的具体内存地址。

上面就是数据查询效率高的原因,但是凡事有利就有弊。应为数组的内存是连续的,所以对数组进行增删元素(不包含最后一个元素)都会对后面的元素进行位移操作,这就导致了性能问题,所以数组查询效率高,增删效率慢。

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐