Java 数组
数组是相似类型数据的集合。在本教程中,我们通过示例了解 Java 中如何声明和初始化数组以及如何访问数组元素。
在本教程中,我们通过示例了解 Java 中如何声明和初始化数组以及如何访问数组元素。
数组是相似类型数据的集合。
例如,如果我们要存储 100 个人的姓名,那么我们可以创建一个字符串类型的数组,该数组可以存储 100 个姓名。
String[] array = new String[100];
上面的数组不能存储超过 100 个名称。Java 数组的量始终是固定的。
如何在 Java 中声明一个数组?
在 Java 中,我们可以通过以下方式声明数组。
dataType[] arrayName;
例如,
double[] data;
这里, data
是一个可以保存 double
类型值的数组。
但是,这个数组可以容纳多少个元素?好问题!要定义数组可以容纳的元素数量,我们必须为数组分配内存。例如,
// 声明一个数组
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 数组中,每个内存位置都与一个数字相关联。该数字称为数组索引。我们还可以使用索引号在初始化数组。例如,
// 声明一个容量为 5 的数组
int[] age = new int[5];
// 初始化数组
age[0] = 12;
age[1] = 4;
age[2] = 5;
..
Java 数组初始化示意图:
注意 :
- 数组索引总是从
0
开始。 也就是说,数组的第一个元素在索引0
处。 - 如果数组的大小是
n
,那么数组的最后一个元素将位于索引n-1
处.
如何在 Java 中访问数组的元素?
我们可以使用索引号访问数组的元素。这是访问数组元素的语法,
array[index]
让我们看一个使用索引号访问数组元素的示例。
示例:访问数组元素
public 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 循环
public 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 循环
public 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
示例:计算数组元素的总和和平均值
public 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;
// 循环累加数组的每个元素到 sum 中
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
循环访问数组的每个元素。
在循环内部,我们累加每个元素到 sum
变量中来计算综合。注意下面这行代码:
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 多维数组。