原文: https://www.programiz.com/java-programming/arrays

在本教程中,我们将学习在 Java 中使用数组。 我们将借助示例学习声明,初始化和访问数组元素。

数组是相似类型数据的集合。 它是一个容器,用于保存一种单一类型的数据(值)。 例如,您可以创建一个可以容纳 100 个int类型值的数组。

在 Java 中,数组是一种基本结构,可让您方便地存储和访问大量值。


如何声明数组?

在 Java 中,这是我们如何声明数组的方法。

  1. dataType[] arrayName;

让我们举个例子

  1. double[] data;

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

但是,可以容纳多少个元素?

好问题! 我们必须为数组分配内存。 内存将定义数组可以容纳的元质数。

  1. data = new Double[10];

在这里,数组的大小为 10。这意味着它可以容纳 10 个元素(10 个double类型值)。 数组的大小也称为数组的长度。

注意:一旦定义了数组的长度,就不能在程序中对其进行更改。

让我们再举一个例子:

  1. int[] age;
  2. age = new int[5];

在此,age是一个数组。 它可以容纳 5 个int类型的值。

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

  1. int[] age = new int[5];

Java 数组索引

在 Java 中,数组中的每个元素都与一个数字关联。 该数字称为数组索引。 我们可以使用这些索引访问数组的元素。 例如,

  1. int[] age = new int[5];

Java 数组 - 图1

Java 数组索引

在这里,我们有一个长度为 5 的数组。在图中,我们可以看到每个元素都由一个数字(数组索引)组成。 数组索引始终从 0 开始。

现在,我们可以使用索引号访问数组的元素。 例如,访问数组的第一个元素可以使用age[0],第二个元素可以使用age[1]进行访问,依此类推。

注意:如果数组的长度为n,则数组的第一个元素为arrayName[0],最后一个元素为arrayName[n-1]

如果我们没有将任何值存储到数组,则数组将自行存储一些默认值(int类型为0boolean类型为false)。 例如,

  1. class ArrayExample {
  2. public static void main(String[] args) {
  3. // create an array of length 5
  4. int[] age = new int[5];
  5. // access each element of the array using the index number
  6. System.out.println(age[0]);
  7. System.out.println(age[1]);
  8. System.out.println(age[2]);
  9. System.out.println(age[3]);
  10. System.out.println(age[4]);
  11. }
  12. }

输出

  1. 0
  2. 0
  3. 0
  4. 0
  5. 0

在上面的示例中,我们创建了一个名为age的数组。 但是,我们没有为该数组分配任何值。 因此,当我们访问数组的各个元素时,默认值将显示在屏幕上。

在这里,我们正在单独访问数组的元素。 有一种使用循环(通常为for循环)访问数组元素的更好方法。 例如,

  1. class ArrayExample {
  2. public static void main(String[] args) {
  3. // create an array of length 5
  4. int[] age = new int[5];
  5. // accessing elements using for loop
  6. for (int i = 0; i < 5; ++i) {
  7. System.out.println(age[i]);
  8. }
  9. }
  10. }

输出

  1. 0
  2. 0
  3. 0
  4. 0
  5. 0

如何在 Java 中初始化数组?

在 Java 中,我们可以在声明期间初始化数组,也可以根据需要在程序中稍后进行初始化。

声明期间初始化数组

这是在声明过程中初始化数组的方法。

  1. int[] age = {12, 4, 5, 2, 5};

该语句创建一个名为age的数组,并使用大括号中提供的值对其进行初始化。

数组的长度由花括号内用逗号分隔的值的数量确定。 在我们的示例中,age的长度为 5。

Java 数组 - 图2

Java 数组初始化

让我们编写一个简单的程序来打印此数组的元素。

  1. class ArrayExample {
  2. public static void main(String[] args) {
  3. // create an array
  4. int[] age = {12, 4, 5, 2, 5};
  5. // access elements of tha arau
  6. for (int i = 0; i < 5; ++i) {
  7. System.out.println("Element at index " + i +": " + age[i]);
  8. }
  9. }
  10. }

输出

  1. Element at index 0: 12
  2. Element at index 1: 4
  3. Element at index 2: 5
  4. Element at index 3: 2
  5. Element at index 4: 5

如何访问数组元素?

如前所述,我们可以使用数字索引轻松访问和更改数组的元素。 例如,

  1. class ArrayExample {
  2. public static void main(String[] args) {
  3. int[] age = new int[5];
  4. // insert 14 to third element
  5. age[2] = 14;
  6. // insert 34 to first element
  7. age[0] = 34;
  8. for (int i = 0; i < 5; ++i) {
  9. System.out.println("Element at index " + i +": " + age[i]);
  10. }
  11. }
  12. }

输出

  1. Element at index 0: 34
  2. Element at index 1: 0
  3. Element at index 2: 14
  4. Element at index 3: 0
  5. Element at index 4: 0

示例:Java 数组

下面的程序计算存储在int类型的数组中的值的总和和平均值。

  1. class SumAverage {
  2. public static void main(String[] args) {
  3. int[] numbers = {2, -9, 0, 5, 12, -25, 22, 9, 8, 12};
  4. int sum = 0;
  5. Double average;
  6. // for each loop is used to access elements
  7. for (int number: numbers) {
  8. sum += number;
  9. }
  10. int arrayLength = numbers.length;
  11. // Change sum and arrayLength to double as average is in double
  12. average = ((double)sum / (double)arrayLength);
  13. System.out.println("Sum = " + sum);
  14. System.out.println("Average = " + average);
  15. }
  16. }

输出

  1. Sum = 36
  2. Average = 3.6

在上面的示例中,我们创建了一个名为number的数组。 我们已经使用for...each循环来访问数组的每个元素。 要了解有关for...each循环的更多信息,请访问 Java for...each循环

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

  1. int arrayLength = number.length;

在这里,我们使用数组的长度属性计算数组的大小。 然后,我们使用以下公式计算平均值:

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

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


多维数组

到目前为止,我们提到的数组称为一维数组。 但是,我们可以用 Java 声明多维数组。

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

  1. double[][] matrix = {{1.2, 4.3, 4.0},
  2. {4.1, -1.1}
  3. };

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


还请查看以下来源:

  • Java 复制数组
  • Java 数组方法
  • Java ArrayList和列表到数组
  • Java 字符串数组
  • Java int数组
  • Java double数组
  • Java 对象数组
  • Java 字符串到数组和数组到字符串的转换
  • 如何使用 Java 打印数组?
  • 在 Java 中数组是否可以具有动态长度?