Java中数组的定义与使用

数组 — 一种引用数据类型

一、一维数组的定义与使用

1.1 数组初始化

1.1.1 数组动态初始化:

数据类型[ ] 数组名称 = new 数据类型[数组长度];
举个例子:
在这里插入图片描述

  • 数组通过下标索引来获取元素,即数组名[下标],下标默认从0开始,到长度减一结束
  • 数组下标越界会报错(数组越界异常----是一个运行时异常)
  • 数组中每个元素都有默认值,默认值是对应数据类型的默认值
  • 数组长度的计算方法:数组名.length

在这里插入图片描述
访问数组除了上述方法外,在jdk1.5提供了一个for-each语句,也可以用来访问数组:
在这里插入图片描述

注意:这种for-each语句仅限于用来访问数组,若要对数组进行修改操作,还是要用常规方法(如:for、while循环)

数组本身除了声明并开辟空间外,还有一种开辟模式(分部进行数组实例化):
在这里插入图片描述

注意:数组属于引用数据类型,在使用前必须先初始化,否则会报错
(NullPointException — 空指针异常【属于运行时异常】)

数组开辟空间情况:
在这里插入图片描述
数组的引用传递:指多个栈内存指向同一块堆内存。
在这里插入图片描述
在这里插入图片描述

1.1.2数组静态初始化

  • 简化格式:数据类型[ ] 数组名 = {值, 值……};
  • 完整格式:数据类型[ ] 数组名 = new 数据类型[ ] {值, 值……};
  • 在这里插入图片描述

在数组定义时直接设置内容,根据值的个数确定数组长度,长度不可修改。

匿名数组:没有任何堆内存指向的数组,只能使用一次。
在这里插入图片描述

建议:使用静态数组时建议使用完整格式

数组最大缺陷:长度固定,存在越界问题

二、 二维数组的定义与使用(了解)

2.1 二维数组的定义

在之前所使用的数组,使用一个索引就可以访问。这样的数组像一个数据行的概念。
现在通过一个索引就可以取得唯一的一个记录,这样的数组称为一维数组。
而二维数组本质上指的就是一个行列的集合。换言之,如果要获得一个数据,既需要行索引,也需要列索引。
在上述的结构中,如果要确定一个数据,则使用结构为“数组名称[行索引][列索引]”这样的结构就是一个表的结构。
那么对于二维数组的定义有两种声明格式:

2.1.1 动态初始化

  • 数据类型[ ][ ] 对象数组 = new 数据类型[行个数][列个数] ;

2.1.2 静态初始化

  • 数据类型[][] 对象数组 = new 数据类型[][]{{值,值,…},{值,值,…},…} ;
    在这里插入图片描述
    在这里插入图片描述

三、数组与方法的互操作

数组是引用数据类型,所有引用数据类型都可以为其设置多个栈内存指向。所以在进行数组操作的时候,也可以将
其通过方法进行处理。

3.1 方法接收数组

在这里插入图片描述

3.2 方法返回数组

在这里插入图片描述

3.3 方法修改数组

在这里插入图片描述

四、Java对数组的支持

在JavaSE给出的类库中也提供有对数组操作的支持

  • 数组排序:Java.util.Array.sort(数组名称);

只要是基本数据类型的数组,sort方法都可以进行排序处理(升序处理)

在这里插入图片描述
在这里插入图片描述

  • 数组拷贝:指的是将一个数组的部分内容替换掉另一个数组的部分内容(必须是连续的)
    用法:System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
    在这里插入图片描述

5、对象数组

之前我们看到的数组都是基本类型的数组,对象数组往往是以引用数据类型为主的定义,例如:类、接口。

5.1 对象数组的动态初始化

  • 语法: 类名称[ ] 对象数组名称 = new 类名称[长度];

举个例子:
在这里插入图片描述
在这里插入图片描述

5.2 对象数组的静态初始化

例子如下:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/A__B__C__/article/details/83420663