05 数组以及应用

101 阅读3分钟

01 一维数组的概念

当需要在Java程序中记录多个相同数据类型的数据时,需要声明一个一维数组即可,一位数组的本质是在内存空间中申请一段连续的存储单元。

数组是相同数据类型的多个元素的容器,元素按线性排列,在Java中体现为一种引用数据类型

02 一维数组声明方式

一维数组声明语法格式:数据类型[] 数组名=new 数据类型[数组长度];

int[] arr=new int[6];

调用数组的length属性可以获取数组的长度。

对于数组内容的访问是通过下标方式进行访问,需要注意的是数组的下标是从0开始的,对于长度为n的数组,下标范围为0~n-1

03 一维数组的初始化

首先需要说明的是基本类型的数组(数据元素为基本数据类型)创建后,其元素的初始值:byte、char、int、long为0;float和double为0.0;boolean为false

数组的初始化有两种方式:动态方式和静态方式

  • 静态方式 在数组声明的同时进行初始化,具体如下:

    ​ 数据类型[] 数组名={初始值1,初始值2,........};

  • 动态方式 先对数组进行声明,随后再对数组进行初始化,具体如下:

    int[] arr=new int[3];
    for(int i=0;i<arr.length;i++){
        arr[i]=i;
    }
    

    可以看出来,静态方式是不给出数组的长度,而是直接给出数组的所有元素的初始值;动态方式则是先给出数组的长度,并没有给出数组的所有元素的初始值。

04 内存结构

内存结构有栈区和堆区,两中结构的具体功能如下:

  • 栈区用于存放程序运行过程中所有的局部变量。一个运行的Java程序从开始到结束会有多次变量的声明。

  • JVM会在内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的数组和对象。

05 数组的优缺点

数组的优点:可以直接通过下标的方式访问指定位置的元素,速度很快。

数组的缺点:数组要求所有元素的类型相同;数组要求内存空间连续,并且长度一旦确定就无法修改;数组增加和删除元素需要移动大量元素,效率低

06 数组工具类

Java.util.Arrays类可以实现对数组元素的遍历、查找、排序等操作。

常用方法如下:

07 数组笔试考点

对于下面代码,能否实现数组a的元素拷贝到数组b

int[] a={1,2,3};
int[] b=new int[6];
b=a;

答:对于上面的代码,数组变量名的实质是数组存储在堆区中内存地址,b=a会将数组a的内存地址赋值给数组b,而不是将数组a中的数据赋值给数组b,这样数组b将会指向数组a所在的内存空间,这时候a和b数组可以看做是同一个数组。

08 二维数组

二维数组本质上是由多个一维数组组成的数组,二维数组中的每个元素都是一维数组,而一维数组中的每个元素才是二维数组的数据内容

声明的语法格式是:数据类型[] [] 数组名称=new 数据类型[行数] [列数]

初始化格式:数据类型[] [] 数组名称={ {元素1,元素2,元素3,....},{}..........}