Java多维数组

可以在二维数组中存储表格数据。在数组声明的每个维度的一对括号[]来声明多维数组。
例如,如下所示定义int类型的二维数组:

int[][] table;

这里,table是一个引用变量,可以保存对int类型的二维数组的引用。下面创建具有三行和两列的int类型二维数组,如下所示:

table = new int[3][2];

多维数组中每个维度的索引都是从零开始的。可使用table[rownumber] [columnNumber]访问table数组的每个元素。行号(rownumber)和列号(columnNumber)始终从0开始。

例如,以下代码将一个值 32 分配给表数组中的第一行和第二列,如图所示:

table[0][1] = 32;

可以将值1分配给第三行和第一列,如下所示:

table[2][0] = 1;

必须在创建多维数组时指定至少第一级数组的维度。例如,

table = new int[3][];

此语句仅创建第一级数组。此时仅存在table[0]table[1]table[2],它们都是引用 null 值。 table.length的值为3table[0]table[1]table[2]int类型的数组,也可以将它们赋值为 -

table[0] = new int[2]; // Create two  columns  for row 1 
table[1] = new int[2]; // Create two  columns  for row 2 
table[2] = new int[2]; // Create two  columns  for row 3

Java可以为每行创建一个具有不同列数的二维数组。这样的数组称为粗糙数组。

public class Main {
  public static void main(String[] args) {
    // Create a two-dimensional array of 3 rows
    int[][] raggedArray = new int[3][];

    // Add 2 columns to the first row
    raggedArray[0] = new int[2];

    // Add 1 column to the second row
    raggedArray[1] = new int[1];

    // Add 3 columns to the third row
    raggedArray[2] = new int[3];

    // Assign values to all elements of raggedArr
    raggedArray[0][0] = 1;
    raggedArray[0][1] = 2;
    raggedArray[1][0] = 3;
    raggedArray[2][0] = 4;
    raggedArray[2][1] = 5;
    raggedArray[2][2] = 6;

    // Print all elements. One row at one line
    System.out.println(raggedArray[0][0] + "\t" + raggedArray[0][1]);
    System.out.println(raggedArray[1][0]);
    System.out.println(raggedArray[2][0] + "\t" + raggedArray[2][1] + "\t"
        + raggedArray[2][2]);
  }
}

上面的代码生成以下结果。

1    2
   5    6

访问多维数组的元素

通常,使用嵌套for循环来填充多维数组。用于处理多维数组的for循环次数等于数组中的维数。

以下代码显示了如何访问多维数组的元素

public class Main {
  public static void main(String[] args) {
    int[][] myArray = new int[3][];
    myArray[0] = new int[2];
    myArray[1] = new int[1];
    myArray[2] = new int[3];

    // Populate the ragged array using for loops
    for (int i = 0; i < myArray.length; i++) {
      for (int j = 0; j < myArray[i].length; j++) {
        myArray[i][j] = i + j;
      }
    }

    // Print the array using for loops
    for (int i = 0; i < myArray.length; i++) {
      for (int j = 0; j < myArray[i].length; j++) {
        System.out.print(myArray[i][j] + "\t");
      }

      // Add a new line after each row is printed
      System.out.println();
    }
  }
}

上面的代码生成以下结果。

0    1    
   4

初始化多维数组

可以在声明时或在创建时提供值列表来初始化多维数组中的每个元素。

每个维度的初始值数量将决定数组中每个维度的长度。级别的值列表用大括号括起来。对于二维数组,每行的值列表都包含在一对大括号中,如下所示:

int[][] arr = {{10, 20, 30},   
               {1, 2},   
               {2, 3, 4, 5}};

在上面的语句中创建一个具有三行的二维数组。以下代码显示如何初始化一个二维String类型的数组:

String[][] acronymlist = {{"A", "a"},
                          {"B", "b"},
                          {"C", "c"}};

可以在创建多维数组时初始化多维数组的元素。如下代码所示 -

int[][] arr = new int[][]{{1, 2},   {3,4,5}};

上一篇:Java数组参数

下一篇:没有了

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程