简述Java数组的使用

目录

一、数组的创建和初始化

1.数组创建

2.数组的初始化

二、数组元素的访问

三、数组在内存中的存储

四、二维数组

1.二维数组的创建

2.数组元素的访问


数组是几乎所有程序设计语言都提供的一种数据存储结构。数组是名称相同,下标不同的一组变量,用来存储一组类型相同的数据。下面就来介绍数组的创建,初始化和使用。

一、数组的创建和初始化

使用数组一般需要三个步骤:

(1)声明数组:声明数组名称和元素的数据类型。

(2)创建数组:为数组元素分配存储空间。

(3)数组的初始化:为数组元素赋值。

1.数组创建

数组的创建需要使用数组需要声明,目的在于告诉编译器数组名和元素类型,格式为:

elementType [ ]arrayName;

elementType arrayName[ ];

推荐使用第一种声明方式。

创建数组将使用使用new语句,new语句的目的为数组的每个元素分配存储空间,通常来说,数组的声明和使用new语句创建会写在一条语句内,所以数组的创建的一般格式为:

elementType [ ]arrayName = new elementType[arraySize];

该语句的功能为使用new语句创建名为arrayName的数组并分配arraySize个elementType类型的存储空间。

2.数组的初始化

数组的初始化分为两种形式

动态初始化(创建数组是只指定长度),如以下实例:

int [ ]array = new int[3];

静态初始化(创建数组的同时指定内容),声明数组的同时可以使用初始化器对数组元素初始化,在一对大括号中给出数组的每个元素值,如以下实例:

int [ ]array = new int[ ]{1,2,3};

用这种方法创建的数组不能指定数组的长度,系统会根据元素个数确定数组长度。除此之外,可使用循环语句为数组动态初始化数组元素。

二、数组元素的访问

声明了一个数组,并使用new运算符为数组元素分配内存空间后,就可以使用数组中的每一个元素。格式为:

arrayName [index]

index为数组的下标,数组使用定位数组元素在内存中的地址,下标从0开始,最大下标为数组长度减1。例如,有个长度为3的名为arr的数组,想要分别访问word数组的第一、二、三个数组元素的方式为arr[0],arr[1],arr[2]。

Java提供了一个length成员变量,它表示数组元素的个数,访问该成员变量的方法为arrayName.length,如arr.length,即表示数组arr的长度。

三、数组在内存中的存储

为了提高运算效率,Java虚拟机就对空间进行了不同区域的划分,每一片区域都有特定的处理数据方式和内存管理方式。对数组的处理则牵涉到堆内存和栈内存

堆内存存储对象或者数组,new来创建的,都存储在堆内存。
方法栈方法运行时使用的内存,比如main方法运行,进入方法栈中执行。

int[] arr = new int[3];

System.out.println(arr);     //[I@5f150435

以上方法执行,输出的结果是[I@5f150435,是数组在内存中的地址。使用new语句创建的内容,都是在堆内存中存储的,而方法中的变量arr保存的是数组的地址。
输出arr[0],就会输出arr保存的内存地址中的数组中下标为0所引用的元素。

四、二维数组

1.二维数组的创建

二维数组的使用也分为声明、创建和初始化三个步骤,二维数组拥有以下三种声明格式:

elementType [ ] [ ] arrayName;

elementType [ ] arrayName [ ];

elementType arrayName [ ] [ ];

推荐使用第一种声明方式。

 创建二维数组的语句一般格式为:

elementType [ ] [ ] arrayName = new elementType[arraySize1][arraySize2];

创建二维数组时,系统会先为高维分配空间,再顺次为低维分配空间,arraySize1为高维数组的长度,arraySize2为每个低维数组的长度。二维数组的创建也使用new运算符,如以下实例:

int [ ] [ ]arr = new int [2][3];

这种方法适用于数组的低维具有相同个数的数组元素,实例表示意思为,Java定义了两个高维数组,arr[0]和arr[1],每个高维数组都有3个低维数组,arr[0]具有arr[0][0],arr[0][1],arr[0][2]这样3个低维数组,arr[1]具有arr[1][0],arr[1][1],arr[1][2]3个低维数组,以此类推。所有,对二维数组的第一维通常称为行,第二维称为列。二维数组的创建还可以用如下方式:

int [ ] [ ]arr = new int [2][ ];                        //先为第一维分配空间

arr[0] = new int [3];                                  //再为第二维分配空间

arr[1] = new int [3];

用以上方式可分别为高维数组分配自定义个数的低维数组,如:

int [ ] [ ]arr = new int [3][ ];

arr[0] = new int [3];

arr[1] = new int [5];

arr[2] = new int [4];

 与访问一维数组一样,访问二维数组元素时,下标不能超出范围,可以使用arr.length得到arr的长度,结果为3;使用arr[0].length得到arr[0]的长度,结果为3,使用arr[1].length得到arr[1]的长度,结果为5。

2.数组元素的访问

访问二维数组的元素,使用以下格式:

arrayName [index1] [index2]

以下代码为给arr[2][3]数组赋值:

arr[0][0] = 10;

arr[0][1] = 11;

arr[0][2] = 12;

arr[1][0] = 20;

arr[1][1] = 21;

arr[1][2] = 22;

二维数组的初始化也同一维数组一样,有两种初始化方式,可以使用动态初始化,也可在声明数组的同时为数组元素初始化,例如:

int arr[ ] [ ] arr = new int[ ]{{10,11,12},{20,21,22}};

除此之外,还可使用循环语句为数组动态初始化数组元素,与一维数组一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值