很多程序员不知道数组查询的效率为什么这么高,有下标,可以通过下标直接找到元素,然后得到元素里面的值【遮住脸】【遮住脸】。
这样的回答对于面试官来说,是不满意的工资直接降低一个等级,那么今天我们就来具体聊聊,数组为什么可以号称是java中查询效率最高的数据结构。直接进入主题,数组效率高的原因:
1、数组的内存地址是连续的。
2、数组存储的元素类型是一致的,所以每个元素占用的内存大小是一样的。
3、数组的第一个元素内存地址作为整个数组的引用。
通过上面固定的三个条件,我们就可以根据传入的下标,通过一个数学公式,直接得到下标的内存地址,就可以获取里面的值了。
所以数组的时间复杂度是o(1)。不管你查询的下标是0还是10000,所需要的查询时间都是一样的,直接通过一个数学公式获取到下标的具体内存地址。
上面就是数据查询效率高的原因,但是凡事有利就有弊。应为数组的内存是连续的,所以对数组进行增删元素(不包含最后一个元素)都会对后面的元素进行位移操作,这就导致了性能问题,所以数组查询效率高,增删效率慢。