Java 多維數(shù)組

2018-01-23 18:42 更新

Java數(shù)據(jù)類型教程 - Java多維數(shù)組


我們可以在二維數(shù)組中存儲表格數(shù)據(jù)。

使用數(shù)組聲明中每個維度的一對括號[]來聲明多維數(shù)組。

例如,如下所示定義int的二維數(shù)組:

int[][] table;

這里,table是一個引用變量,可以保存對int的二維數(shù)組的引用。

可以創(chuàng)建具有三行和兩列的二維數(shù)組int,如下所示:

table = new int[3][2];

多維數(shù)組中每個維度的索引都是從零開始的。

表數(shù)組的每個元素可以作為表[rownumber] [columnNumber]訪問。

行號和列號始終從零開始。

例如,以下代碼將值分配給表數(shù)組中的第一行和第二列,如圖所示:

table[0][1] = 32;

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

table[2][0] = 1;

我們必須在創(chuàng)建多維數(shù)組時指定至少第一級數(shù)組的維度。

例如:

table = new int[3][];

我們必須在創(chuàng)建多維數(shù)組時指定至少第一級數(shù)組的維度。

此時僅存在表[0],表[1]和表[2]。

他們指的是null。 table.length的值為3。

table [0],table [1]和table [2]是int數(shù)組,我們可以將它們賦值為

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可以為每行創(chuàng)建一個具有不同列數(shù)的二維數(shù)組。這樣的數(shù)組稱為粗糙數(shù)組。

例子

以下代碼顯示了如何創(chuàng)建一個不規(guī)則數(shù)組。

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

上面的代碼生成以下結(jié)果。


訪問多維數(shù)組的元素

通常,使用嵌套for循環(huán)來填充多維數(shù)組。

用于處理多維數(shù)組的for循環(huán)數(shù)等于數(shù)組中的維數(shù)。

以下代碼顯示了如何訪問多維數(shù)組的元素。

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();
    }
  }
}

上面的代碼生成以下結(jié)果。

初始化多維數(shù)組

我們可以通過在聲明時或在創(chuàng)建時提供值列表來初始化多維數(shù)組的元素。

每個維度的初始值數(shù)量將決定數(shù)組中每個維度的長度。

級別的值的列表用大括號括起來。

對于二維數(shù)組,每行的值列表都包含在一對大括號中,如下所示:

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

此語句創(chuàng)建一個具有三行的二維數(shù)組。

以下代碼顯示如何初始化一個二維String數(shù)組:

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

我們可以在創(chuàng)建多維數(shù)組時初始化多維數(shù)組的元素。

int[][] arr = new int[][]{{1, 2},   {3,4,5}};
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號