zoukankan      html  css  js  c++  java
  • 数组VS集合

    1、数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据
    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<ArrayList<object>> array

  • 相关阅读:
    DataTable.Compute功能
    ip的划分,超详细
    静态页 htm传参数
    [你必须知道的.NET] 第四回:后来居上:class和struct
    [你必须知道的.NET] 第八回:品味类型值类型与引用类型(上)-内存有理
    [你必须知道的.NET] 第五回:深入浅出关键字把new说透
    作废
    XML Schema <第三篇>
    XML基础<第一篇>
    NHibernate之配置文件属性说明
  • 原文地址:https://www.cnblogs.com/jetqiu/p/13358061.html
Copyright © 2011-2022 走看看