美文网首页
重新认识数组

重新认识数组

作者: 恐惧是万敌之首 | 来源:发表于2020-04-17 00:38 被阅读0次

什么是数组
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。

线性表(Linear List)
线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。

线性表

非线性表
比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。

非线性表

数组的特征:
连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有弊,这两个限制也让数组的很多操作变得非常低效,比如要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据搬移工作。

数组为了保持内存数据的连续性,会导致插入、删除这两个操作比较低效。数组本身在定义的时候需要预先指定大小,因为需要分配连续的内存空间。

ArrayList,我们就完全不需要关心底层的扩容逻辑,ArrayList 已经帮我们实现好了。每次存储空间不够的时候,它都会将空间自动扩容为 1.5 倍大小。因为扩容操作涉及内存申请和数据搬移,是比较耗时的。所以,如果事先能确定需要存储的数据大小,最好在创建 ArrayList 的时候事先指定数据大小。

总结:数组用一块连续的内存空间,来存储相同类型的一组数据,最大的特点就是支持随机访问,但插入、删除操作也因此变得比较低效,平均情况时间复杂度为 O(n)。在平时的业务开发中,我们可以直接使用编程语言提供的容器类,但是,如果是特别底层的开发,直接使用数组可能会更合适。

相关文章

  • 重新认识数组

    什么是数组? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性...

  • 重新认识数组

    什么是数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表(...

  • 重新认识数组

    什么是数组 数组是一个连续内存空间,存储相同数据类型的数据结构。 数组优缺点 优点:由于连续的内存空间,且每个元素...

  • php array merge函数

    HP中合并数组分成两种情况:1.如果这两个数组中有相同的字符串键名 2.如果这两个数组中有相同的数值键名 重新认识...

  • 《认知突围——做复杂时代的明白人 》读书笔记

    作者在书中从"重新认识自己,重新认识知识,重新认识金钱,重新认识时间,重新认识关系,重新认识人生"六个方面进...

  • 重新认识目标

    早上读了小帅老师的文章,里面有提到我们要重新认识的六个方面:重新认识选择、重新认识命运、重新认识改变、重新认识耐心...

  • 15期训练营4组38号小赖第1节课后作业

    建立心智管理时间模型 一、认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方...

  • 第18期训练营欣欣的作业

    一、今晚作业:1.认知突围,从四个维度(重新认识自己,重新认识金钱,重新认识时间,重新认识人生),请从这个方面,阐...

  • 29号

    最近都是重新认识重新认识重新认识、有没有不是重新认识的、自我驱动力、自我约束、自我陶醉、自我安慰、自我保护。唉~~...

  • 第一周的作业,段玉荣

    1:认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方面阐述你应该如何做?)...

网友评论

      本文标题:重新认识数组

      本文链接:https://www.haomeiwen.com/subject/bbhsvhtx.html