Java Arrays (数组)



  • Java 数组

    数组用于将多个值存储在单个变量中,而不是为每个值声明单独的变量。要声明数组,请使用方括号定义变量类型:
    String[] cars;
    
    现在,我们声明了一个包含字符串数组的变量。要向其中插入值,我们可以使用数组文字 - 将值放置在大括号内的逗号分隔列表中:
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    
    要创建整数数组,您可以编写:
    int[] myNum = {10, 20, 30, 40};
    
  • 访问数组的元素

    您可以通过引用索引号来访问数组元素。该语句访问cars中第一个元素的值:
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    System.out.println(cars[0]);
    // Outputs Volvo
    
    注意:数组索引以0开头:[0]是第一个元素。[1]是第二个元素,依此类推。
  • 更改数组元素

    要更改特定元素的值,请参考索引号:
    cars[0] = "Opel";
    
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    cars[0] = "Opel";
    System.out.println(cars[0]);
    // 现在 Opel 代替了 Volvo
    
  • 数组长度

    要查找数组有多少个元素,请使用length属性:
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    System.out.println(cars.length);
    // Outputs 4
    
  • 遍历数组

    您可以通过for循环遍历数组元素,并使用length属性指定循环应运行的次数。以下示例输出cars 数组中的所有元素:
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (int i = 0; i < cars.length; i++) {
      System.out.println(cars[i]);
    }
    
  • 使用For-Each遍历数组

    还有一个“for-each”循环,专用于循环遍历数组中的元素:
    语法:
    for (type variable : arrayname) {
      ...
    }
    
    以下示例 使用“for-each”循环输出cars数组中的所有元素:
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (String i : cars) {
      System.out.println(i);
    }
    
    上面的例子中可以读取这样的:对于每个元素 放在一个i变量中。 如果将for循环和for-each循环进行比较,您会发现for-each方法更容易编写,不需要计数器(使用length属性),并且可读性更高。
  • 多维数组

    多维数组是包含一个或多个数组的数组。要创建一个二维数组,请将每个数组添加到其各自的花括号内
    语法:
    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
    
    myNumbers现在是一个以两个数组为元素的数组。要访问myNumbers数组的元素,请指定两个索引:一个用于数组,一个用于该数组内的元素。本示例访问myNumbers的第二个数组(1)中的第三个元素(2):
    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
    int x = myNumbers[1][2];
    System.out.println(x); // 输出 7
    
    我们还可以使用嵌套for循环来获取二维数组的元素(我们仍然必须指向两个索引):
    public class MyClass {
      public static void main(String[] args) {
        int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
        for (int i = 0; i < myNumbers.length; ++i) {
          for(int j = 0; j < myNumbers[i].length; ++j) {
            System.out.println(myNumbers[i][j]);
          }
        }
      }
    }