什么是集合和数组呢
集合和数组都是对多个数据进行存储操作的及格,简称Java容器
它们两个有什么区别呢?集合可以存放不同类型的数据,而数组只可以存放定义好的数据类型的数据。
数组的特点
数组是具有相同的数据类型按一定次序排序的一组变量的组合体。
对于静态数组来说,一旦初始化以后,长度就确定了。只能操作定义好的数据类型的数据,比如String[],int[]。
数组的缺点
对于添加删除插入等操作,最坏的结果是O(N),效率非常低,因为数组在内存中的地址是连续相邻的,每次删除元素,都要移动改元素后面的位置。
复习题:为什么数组比链表查询的速度更快?
从内存分配来看,数组是连续的内存地址,而链表的节点是分散在堆空间里的。
从寻址操作次数来看,数组只需知道基地址和要查询的下标索引,加上数组的数据类型的元素大小,根据 [基地址+元素大小*k] 就能找到第k+1个元素的地址 , 链表要获得第k个元素,首先要在其第k-1个元素寻找到其next指针偏移,再将next指针作为地址获得值,这样就要从第一个元素找起,多了多步寻址操作,当数据量大且其它操作较少时,这就有差距了。