美文网首页
我的对数组的理解

我的对数组的理解

作者: haha_c609 | 来源:发表于2018-08-08 11:14 被阅读0次

  数组是一个很基础的数据结构,几乎所有的编程语言都有数组结构的实现。虽然不尽完全相同,但是本质上都是用来存放数据的一段连续的结构。

Java中的数组:

  一段连续的内存空间,在初始化时即指定了数组的长度,在初始化完成后的数组长度不可改变;数据可以存储基本类型和包装类型,未赋值的数组元素为存储类型的默认值。

Java初始化数组时的内存变化:

  Java在初始化一个数组时,在内存中的Heap(堆)和Stack(栈)上各开辟了一处空间,在Heap上的空间用于存放数组本身,在Stack上的空间用于存放数组引用实例,并指向Heap上的数组本身!


avatar

Java中的数组的特点:

删除慢:

  数组删除元素时,被删除元素的之后的元素都需要向前移动,因此速度慢。

扩展性差:

  数组的长度在初始化时即指定,在初始化后无法更改,因此无法扩展;但是可以new一个长度更大的新数组,然后将旧数组的元素全部拷贝到新数组中,并将引用指向新的数组来实现曲线扩展,但是这种方式消耗极大;JDK中的ArrayList就是采用的这种方式实现的集合扩容机制。

Java中数组的有序数组与无序数组:

  • 无序数组:指的是数组中的元素没有按照某种特定的顺组的数组,默认按照插入先后进行的排序
  • 有序数组:指的是数组中的元素按照某种特定的顺序进行排序,如根据元素值的大小进行排序的int[]数组

有序数组与无序数组的一些区别:
查找(这里指的是按照元素值进行查找而不是按照下标查找):
  有序数组的查找较无序数组的查找更快一些

扩展:

算法的复杂度问题:
O(1)>O(logN)>O(N)>{O(N^2)}

相关文章

  • 对 PHP 数组的理解

    在 PHP 中数组是使用最多的数据类型.大多数时间,我们不需要考虑 PHP 数组在编码中或者应用中的作用.我们喜欢...

  • Excel 数组-彻底理解数组以及数组的运算原理

    本篇目的是加强自己对excel数组的理解,具体内容,请看原文。原文链接:彻底理解数组以及数组的运算原理1、数组的表...

  • 我对理解的理解

    时下,最值得珍惜的就是信任, 感恩别人对自己的一份信任,理解别人对自己的不理解,这就是我对理解的理解

  • 我的对数组的理解

      数组是一个很基础的数据结构,几乎所有的编程语言都有数组结构的实现。虽然不尽完全相同,但是本质上都是用来存放数据...

  • PHP数组

    一、数组的概念 数组可以理解为有序的(键-值)对组成的数据值的集合; 如果我们把变量理解为单个值的容器,那么数组就...

  • 数组的理解

    一、创建数组 用对象方式 注:创建空数组: 用自变量创建 创建一维数组 创建多维数组 注:1. 数组是引用类型可以...

  • 对java数组的一些理解

    刚开始学习Java的时候一直搞不清除获取数组的长度是用length()还是length,现在不妨来深入了解一下数组...

  • 【JS】Array.from() 将伪数组转换成数组

    Array.from 方法用于将两类对象转换为真正的数组: 1、类似数组的对象,可以理解为“伪数组” 2、可遍历对...

  • python——numpy库入门(1)

    如果对VBA的数组有略微了解,那么对numpy会有相应的帮助,记得半年前看VBA数组,完全不理解,它还是有些抽象的...

  • jQuery动画队列

    队列 队列的本质是一个数组,对队列的理解先从数组的push和shift开始。push是从数组尾端插入新的元素,sh...

网友评论

      本文标题:我的对数组的理解

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