Java 数组

数组是相似类型数据的集合。在本教程中,我们通过示例了解 Java 中如何声明和初始化数组以及如何访问数组元素。

在本教程中,我们通过示例了解 Java 中如何声明和初始化数组以及如何访问数组元素。

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

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

String[] array = new String[100];

上面的数组不能存储超过 100 个名称。Java 数组的量始终是固定的。

如何在 Java 中声明一个数组?

在 Java 中,我们可以通过以下方式声明数组。

dataType[] arrayName;
  • dataType - 它可以是基本数据类型intchardoublebyte 等,也可以是 Java 类
  • 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 多维数组

更多内容