数组VS集合
2021-04-11 17:26
标签:type object 假设 auto 类型 比较 多次 编程语言 编号 1、数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 数组VS集合 标签:type object 假设 auto 类型 比较 多次 编程语言 编号 原文地址:https://www.cnblogs.com/jetqiu/p/13358061.html
2、假设数组a[int],它的首地址是base_address,那么a[k]元素的起始地址等于base_address+k*type_size(k为数组的下标,数组存储的是int类型数据,type_size就是4个字节),a[k]元素的结尾地址为起始地址+type_size,这也是为什么大多数编程语言中,数组要从 0 开始编号,而不是从 1 开始
3、数组中的数据是有序的,我们在某个位置插入一个新的元素时,就必须按照刚才的方法搬移 k 之后的数据,这种效率就比较低了;但是,如果数组中存储的数据并没有任何规律,可以直接将第 k 位的数据搬移到数组元素的最后,把新的元素直接放入第 k 个位置以提高插入效率
4、数组每次删除一个元素都要把之后的数据往前移,我们可以先只记录数据已经被删除然后将多次删除操作集中在一起执行以提高删除效率或者当数组没有更多空间存储数据时,我们再触发执行一次真正的删除操作
5、集合无法存储基本类型,比如 int、long,需要封装为 Integer、Long 类,而 Autoboxing、Unboxing 则有一定的性能消耗,所以如果特别关注性能,或者希望使用基本类型,就可以选用数组
6、当要表示多维数组时,用数组往往会更加直观。比如 Object[][] array;而用容器的话则需要这样定义:ArrayList
上一篇:稀疏数组