跳到主要内容

Java 数组

提示
  1. 数组的基本概念:Java数组是相同数据类型元素的集合,用于存储固定数量的值,例如可以创建一个存储100个字符串的数组。
  2. 声明和初始化:在Java中,数组通过指定数据类型和名称来声明,可在声明时初始化或分配内存以确定其大小。
  3. 访问和遍历元素:数组元素通过索引访问,索引从0开始;可用循环(如for循环或for-each循环)遍历数组元素。

数组是相同数据类型的集合。

例如,如果我们想存储100个人的名字,我们可以创建一个可以存储100个名字的字符串类型数组。

String[] array = new String[100];

这里,上述数组不能存储超过100个名字。Java 数组中的值数量始终是固定的。

如何在 Java 中声明数组?

在 Java 中,我们可以这样声明一个数组。

dataType[] arrayName;

例如,

double[] data;

这里,data 是一个可以存储 double 类型值的数组。

但是,这个数组可以存储多少个元素呢?

好问题!要定义数组可以存储的元素数量,我们必须为 Java 数组分配内存。例如,

// 声明一个数组
double[] data;

// 分配内存
data = new double[10];

这里,数组可以存储 10 个元素。我们也可以说数组的大小或长度是10。

在 Java 中,我们可以在一个语句中声明并为数组分配内存。例如,

double[] data = new double[10];

如何在 Java 中初始化数组?

在 Java 中,我们可以在声明时初始化数组。例如,

// 声明并初始化数组
int[] age = {12, 4, 5, 2, 5};

这里,我们创建了一个名为 age 的数组,并用花括号内的值初始化它。

注意我们没有提供数组的大小。在这种情况下,Java 编译器会通过计算数组中的元素数量(即 5)来自动指定大小。

在 Java 数组中,每个内存位置都与一个数字相关联。这个数字被称为数组索引。我们也可以使用索引号在 Java 中初始化数组。例如,

// 声明一个数组
int[] age = new int[5];

// 初始化数组
age[0] = 12;
age[1] = 4;
age[2] = 5;
..

数组中存储的元素

注意

  • 数组索引始终从 0 开始。即,数组的第一个元素位于索引 0。
  • 如果数组的大小为 n,那么数组的最后一个元素将位于索引 n-1

如何在 Java 中访问数组的元素?

我们可以使用索引号访问数组的元素。这是访问数组元素的语法,

// 访问数组元素
array[index]

让我们看一个使用索引号访问数组元素的例子。

示例:访问数组元素

class Main {
public static void main(String[] args) {

// 创建一个数组
int[] age = {12, 4, 5, 2, 5};

// 访问每个数组元素
System.out.println("访问数组的元素:");
System.out.println("第一个元素:" + age[0]);
System.out.println("第二个元素:" + age[1]);
System.out.println("第三个元素:" + age[2]);
System.out.println("第四个元素:" + age[3]);
System.out.println("第五个元素:" + age[4]);
}
}

输出

访问数组的元素:
第一个元素:12
第二个元素:4
第三个元素:5
第四个元素:2
第五个元素:5

在上面的示例中,请注意我们正在使用索引号来访问数组的每个元素。

我们可以使用循环一次性访问数组的所有元素。

循环遍历数组元素

在 Java 中,我们也可以通过循环遍历数组的每个元素。例如,

示例:使用 For 循环

class Main {
public static void main(String[] args) {

// 创建一个数组
int[] age = {12, 4, 5};

// 循环遍历数组
// 使用 for 循环
System.out.println("使用 for 循环:");
for(int i = 0; i < age.length; i++) {
System.out.println(age[i]);
}
}
}

输出

使用 for 循环:
12
4
5

在上面的示例中,我们正在使用 Java 中的 for 循环 来迭代数组的每个元素。请注意循环内的表达式,

age.length

这里,我们正在使用数组的 length 属性来获取数组的大小。

我们也可以使用 for-each 循环 来迭代数组的元素。例如,

示例:使用 for-each 循环

class Main {
public static void main(String[] args) {

// 创建一个数组
int[] age = {12, 4, 5};

// 循环遍历数组
// 使用 for-each 循环
System.out.println("使用 for-each 循环:");
for(int a : age) {
System.out.println(a);
}
}
}

输出

使用 for-each 循环:
12
4
5

示例:计算数组元素的总和和平均值

class Main {
public static void main(String[] args) {

int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12};
int sum = 0;
Double average;

// 使用 for-each 循环访问所有元素
// 将每个元素加到总和中
for (int number: numbers) {
sum += number;
}

// 获取元素总数
int arrayLength = numbers.length;

// 计算平均值
// 将平均值从 int 转换为 double
average = ((double)sum / (double)arrayLength);

System.out.println("总和 = " + sum);
System.out.println("平均值 = " + average);
}
}

输出

总和 = 36
平均值 = 3.6

在上面的示例中,我们创建了一个名为 numbers 的数组。我们使用了 for...each 循环来访问数组的每个元素。

在循环内,我们正在计算每个元素的总和。请注意这一行,

int arrayLength = number.length;

这里,我们正在使用数组的 length 属性

计算数组的大小。然后我们使用以下方式计算平均值:

average = ((double)sum / (double)arrayLength);

如你所见,我们正在将 int 值转换为 double。这在 Java 中被称为类型转换。要了解更多关于类型转换的信息,请访问 Java 类型转换

多维数组

到目前为止我们提到的数组被称为一维数组。然而,我们可以在 Java 中声明多维数组。

多维数组是数组的数组。也就是说,多维数组的每个元素本身就是一个数组。例如,

double[][] matrix = {{1.2, 4.3, 4.0},
{4.1, -1.1}
};

这里,我们创建了一个名为 matrix 的多维数组。它是一个二维数组。要了解更多,请访问 Java 多维数组

推荐阅读