集合ArrayList有什么特点?底层是用什么实现的?
特点:查询效率高,增删效率低。底层:使用数组实现的存储。
查询效率为什么变快了?
因为底层是使用数组实现的存储,数组是连续的,有下标,有下标了就可以根据下标查询一次命中,时间复杂度就变为0(1),查询就变快了。
为什么增删效率低?
因为定义数组的时候需要定义其长度,不灵活,不方便数据的增,删。
集合ArrayList ,数组,list有什么区别?
数组在存储中是连续储存的,大小固定,无法改变。
ArrayList的大小是根据存储数据来进行动态扩容和收缩的。所以我们在生命ArrayList对象时候不需要定义长度大小,因为它继承了Ilist接口,很方便的进行增加,删除,修改。
list也继承了llist接口,最关键的区别是我们在声明list集合时候,我们需要声明list集合数据内的对象类型
数组有什么缺点呢?
比如:大小固定,无法改变,那这个时候集合的优点就出来了:可以动态扩容。