Java 数组

Java 数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要声明数组,请使用 [] 方括号定义变量类型

  1. String[] cars;

现在我们已经声明了一个包含字符串数组的变量。要向其中插入值,我们可以使用数组文字——将值放在逗号分隔的列表中,放在大括号内:

  1. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

要创建整数数组,可以这样编码:

  1. int[] myNum = {10, 20, 30, 40};

访问数组的元素

通过引用索引号访问数组元素。

此语句访问 cars 中第一个元素的值:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
  4. System.out.println(cars[0]);
  5. }
  6. }
注意:数组索引以 0 开头:[0] 是第一个元素。[1] 是第二个元素,等等。

更改数组元素

要更改特定元素的值,请根据索引号:

实例
  1. cars[0] = "Opel";
实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
  4. cars[0] = "Opel";
  5. System.out.println(cars[0]);
  6. }
  7. }

数组长度

要找出一个数组有多少个元素,请使用 length 属性:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
  4. System.out.println(cars.length);
  5. }
  6. }

在数组中循环

您可以使用 for 循环遍历数组元素,并使用 length 属性指定循环运行的次数。

以下示例输出 cars 数组中的所有元素:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
  4. for (int i = 0; i < cars.length; i++) {
  5. System.out.println(cars[i]);
  6. }
  7. }
  8. }

使用 For-Each 循环遍历一个数组

还有一个 "for-each" 循环,专门用于循环数组中的元素:

语法
  1. for (type variable : arrayname) {
  2. ...
  3. }

以下示例使用 "for-each" 循环输出 cars 数组中的所有元素:

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
  4. for (String i : cars) {
  5. System.out.println(i);
  6. }
  7. }
  8. }

上面的例子可以这样理解:对于 cars 中的每个字符串元素(在索引index中称为 i),打印出 i 的值。

如果比较 for 循环和 for-each 循环,就会发现 for-each 方法更容易编写,不需要计数(使用 length 属性),而且可读性更强。


多维数组

多维数组是数组的数组。

要创建二维数组,请将每个数组添加到其自己的 {} 花括号中:

实例
  1. int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };

myNumbers 现在是一个包含两个数组元素的数组。

要访问 myNumbers 数组的元素,请指定两个索引:一个用于数组,另一个用于该数组内的元素。本例访问 myNumbers 的第二个数组(1)中的第三个元素(2):

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
  4. int x = myNumbers[1][2];
  5. System.out.println(x);
  6. }
  7. }

我们还可以在另一个 for 循环中使用 for 循环来获取二维数组的元素(我们仍然需要指向两个索引):

实例
  1. public class Main {
  2. public static void main(String[] args) {
  3. int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
  4. for (int i = 0; i < myNumbers.length; ++i) {
  5. for(int j = 0; j < myNumbers[i].length; ++j) {
  6. System.out.println(myNumbers[i][j]);
  7. }
  8. }
  9. }
  10. }