在 Java 中,数组是一个特殊的对象类型,可以存储多个相同类型的数据。定义数组时,必须指定数组的类型和名称。具体的定义方式有三种,如下所示:
int[] arr; // 声明一个整型数组
int[]
:表示这是一个整型数组。arr
:数组的名称。在这种方式下,arr
只是声明了一个数组,但并没有为数组分配内存空间。此时的 arr
只是一个引用变量,指向一个整型数组对象。
int arr[]; // 这种写法与方式一等价
int[] arr = new int[5]; // 定义并动态初始化一个长度为 5 的整型数组
new int[5]
:这表示分配了一个包含 5 个整数的数组空间。int
类型,默认为 0
)。数组在定义后可以通过两种方式进行初始化:静态初始化 和 动态初始化。
静态初始化指的是直接在声明时就为数组指定初始值。
在静态初始化时,数组的大小是由初始化时提供的元素个数自动决定的。举个例子:
int[] arr = {1, 2, 3, 4, 5};
arr
是数组的名称,类型是 int[]
,数组的大小是 5
(根据初始化的元素数量决定)。1, 2, 3, 4, 5
。这种初始化方式非常简洁,适用于在定义时就知道数组元素值的情况。
在某些情况下,我们可能知道数组的大小,但不立即指定每个元素的初始值。此时可以通过静态初始化赋值。例如:
int[] arr = {10, 20, 30}; // 数组的大小为 3,元素分别为 10, 20, 30
动态初始化是指定义数组时仅指定数组的大小,而不为数组中的每个元素指定初始值。Java 会自动为每个元素提供一个默认值。
int[] arr = new int[5]; // 定义一个长度为 5 的整型数组,所有元素默认为 0
new int[5]
:表示分配了一个大小为 5 的数组。0
(对于 int
类型)。动态初始化常常用于在不知道具体元素的情况下创建数组,例如从文件或用户输入中获取数据。
int[]
),默认值是 0
。double[]
),默认值是 0.0
。boolean[]
),默认值是 false
。String[]
),默认值是 null
。例如:
boolean[] flags = new boolean[3]; // 默认值是 false
double[] nums = new double[3]; // 默认值是 0.0
String[] names = new String[3]; // 默认值是 null
在 Java 中,数组可以是多维的,最常见的是二维数组。二维数组可以看作是数组的数组。
二维数组的定义语法类似一维数组,但多了一个维度。二维数组的元素是数组类型,每个元素本身也是数组。例如:
int[][] matrix;
这里 matrix
是一个二维数组,类型是 int[][]
,它包含多个 int[]
数组。
我们可以指定二维数组的行数和列数来动态初始化二维数组。例如:
int[][] matrix = new int[3][3]; // 创建一个 3x3 的二维数组,默认值为 0
这里 matrix
是一个 3 行 3 列的二维数组,所有元素初始化为 0
。
静态初始化可以直接为二维数组提供所有元素的初始值。例如:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
这个数组是一个 3x3 的矩阵,静态初始化时,每一行的数组是由一组数字初始化的。
数组定义:Java 数组的定义有三种方式,分别是:
类型[] 数组名
;类型 数组名[]
;类型[] 数组名 = new 类型[大小]
。数组初始化:
二维数组:二维数组的定义和初始化与一维数组类似,只是多了一维。可以通过静态或动态的方式进行初始化。