zoukankan      html  css  js  c++  java
  • java中的数组

    数组是什么?

      在java中数组是一个源自底层的数据结构(同时也为操作数组数据定义了一个java.util.Arrays,但是这个类只是用于对数组元素进行操作);

      在任何语言中数组都是一个最基本的数据结构,他是一个用于存储数据的连续的内存空间的集合,并且每个内存空间都有独一无二的编号.所以,这就相当于为数组里面的值进行了一一对应的编号.

    数组保存数据的特性:

      1 数组是一种引用数据类型

      2 是一种连续的线性的数据结构

      3 数组是一个容器,用来存储其他数据

      4 数组可以存储任意类型的元素,但是每层的数据必须一样,必须是同一数据类型的数据

      5 数组的长度不能直接改变,也就是说,数组一旦确定以后,里面元素的个数不能再增加或者减少(如果需要改变数组的大小,需要再单独的开辟一片内存空间,把当前的数组中的每个元素的映射关系,一一的复制到这个新的内存空间中,在这个过程中可以增减元素)

    数组的声明

      静态声明:在知道数组中每个元素的时候,我们用静态方式声明数组(直接划分内存空间,并且把元素直接就放进去)

        数据类型[] 变量名 = {数组元素}

      动态声明:就是预先不知道要保存什么值,但是我们需要先把保存至的内存空间划分好,然后用相应数据类型的默认值去占用空间

        数据类型[] 变量名 = new 数据类型[长度];

    数组的特性:

      1 每个单独数组中的元素数据类型必须是统一的,数据类型的统一意味着每个数据的内存空间中的大小是一样

      2 数组是索引数据类型,那就意味着要占用两块内存空间;

        在栈内存中,索引保存的是数组对象的第一个元素的内存地址,数组第一个元素的内存地址默认作为整个数组对象的内存地址.同时数组在声明的时候,会有一个length的默认元素类保存元素的个数

        要查找某个元素的时候,只需要首元素的内存地址加上偏移量即可(通过首内存地,加上偏移量,快速计算出要查找元素的内存地址,从而取得元素),由于通过内存直接查找,所以效率极高

      3 数组对于数据处理:,,-------,

        结合数组的特性,查找,更改,效率极高,但是增,删需要保证元素的有序,改元素位以后的数据位都需要向前或者向后移位操作,所以很慢(实际上没有移位,是直接开辟新的空间,然后把每个元素复制过去)

    数组的遍历:

      for(int i = 0;i< length-1;i++)

      for(数据型 e: 数组的索引变量)

        数组默认下标从0开始

    数组的常见报错

      java.lang.ArrayIndexOutOfBoundsException: 4

        我们声明数组的时候(无论是动态还是静态)都自动按照正整数绑定了下标,如果在运算中超出了下标的范围就会报这个错误

      找不到符号错误:就是指找不到某个数据类型

    二维数组本质就是一个平面数据结构(就是表)

      二维数组的特点:

        1 二维数组是一个特殊的一维数组

        2 特殊的一维数组,特殊在这个一维数组中每个元素都是"一维数组"

  • 相关阅读:
    【Linux】【Shell】【Basic】文件查找locate,find
    【Linux】【Shell】【text】Vim
    【Linux】【Shell】【text】文本处理工具
    【Linux】【Shell】【text】grep
    【Linux】【Basis】用户、组和权限管理
    什么是高并发;超发的解决思路(悲观锁与乐观锁);高并发与多线程的关系--持续更新(十四)
    线程池的应用(十三)
    线程池基本概念(十二)
    ThreadLocal(十一)
    tomcat的单例多线程代码示例(十)
  • 原文地址:https://www.cnblogs.com/lianggx66/p/4752495.html
Copyright © 2011-2022 走看看