Java 多维数组

2018-01-23 18:42 更新

Java数据类型教程 - Java多维数组


我们可以在二维数组中存储表格数据。

使用数组声明中每个维度的一对括号[]来声明多维数组。

例如,如下所示定义int的二维数组:

int[][] table;

这里,table是一个引用变量,可以保存对int的二维数组的引用。

可以创建具有三行和两列的二维数组int,如下所示:

table = new int[3][2];

多维数组中每个维度的索引都是从零开始的。

表数组的每个元素可以作为表[rownumber] [columnNumber]访问。

行号和列号始终从零开始。

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

table[0][1] = 32;

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

table[2][0] = 1;

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

例如:

table = new int[3][];

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

此时仅存在表[0],表[1]和表[2]。

他们指的是null。 table.length的值为3

table [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]);
  }
}

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


访问多维数组的元素

通常,使用嵌套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();
    }
  }
}

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

初始化多维数组

我们可以通过在声明时或在创建时提供值列表来初始化多维数组的元素。

每个维度的初始值数量将决定数组中每个维度的长度。

级别的值的列表用大括号括起来。

对于二维数组,每行的值列表都包含在一对大括号中,如下所示:

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}};
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号