在本教程中,我們將借助示例學(xué)習(xí)使用2維數(shù)組和3維數(shù)組的Java多維數(shù)組。
在學(xué)習(xí)多維數(shù)組之前,請確保您了解Java數(shù)組。
多維數(shù)組是數(shù)組的數(shù)組。多維數(shù)組的每個元素都是數(shù)組本身。例如,
int[][] a = new int[3][4];
在這里,我們創(chuàng)建了一個名為a的多維數(shù)組。它是一個二維數(shù)組,最多可以容納12個元素,
記住,Java使用基于零的索引,也就是說,Java中數(shù)組的索引從0開始,而不是從1開始。
讓我們再舉一個多維數(shù)組的實(shí)例。這次我們將創(chuàng)建一個3維數(shù)組。例如,
String[][][] data = new String[3][4][2];
這里,data是一個三維數(shù)組,最多可以容納24(3*4*2)個String類型的元素。
這是我們?nèi)绾卧贘ava中初始化二維數(shù)組。
int[][] a = { {1, 2, 3}, {4, 5, 6, 9}, {7}, };
如我們所見,多維數(shù)組的每個元素都是數(shù)組本身。而且,與C / C ++不同,Java中多維數(shù)組的每一行可以具有不同的長度。
class MultidimensionalArray { public static void main(String[] args) { //創(chuàng)建二維數(shù)組 int[][] a = { {1, 2, 3}, {4, 5, 6, 9}, {7}, }; //計(jì)算每行的長度 System.out.println("第1行的長度: " + a[0].length); System.out.println("第2行的長度: " + a[1].length); System.out.println("第3行的長度: " + a[2].length); } }
輸出:
第1行的長度: 3 第2行的長度: 4 第3行的長度: 1
在上面的實(shí)例中,我們創(chuàng)建了一個名為a的多維數(shù)組,因?yàn)槎嗑S數(shù)組的每個組件也是一個數(shù)組(a[0],[1]和a[2]也是數(shù)組)。
這里,我們使用length屬性來計(jì)算每行的長度。
class MultidimensionalArray { public static void main(String[] args) { int[][] a = { {1, -2, 3}, {-4, -5, 6, 9}, {7}, }; for (int i = 0; i < a.length; ++i) { for(int j = 0; j < a[i].length; ++j) { System.out.println(a[i][j]); } } } }
輸出:
1 -2 3 -4 -5 6 9 7
我們還可以使用for ... each循環(huán)來訪問多維數(shù)組的元素。例如,
class MultidimensionalArray { public static void main(String[] args) { //創(chuàng)建二維數(shù)組 int[][] a = { {1, -2, 3}, {-4, -5, 6, 9}, {7}, }; //首先for ... each循環(huán)訪問單個數(shù)組 //在二維數(shù)組中 for (int[] innerArray: a) { //第二次for ... each循環(huán)訪問行內(nèi)的每個元素 for(int data: innerArray) { System.out.println(data); } } } }
輸出:
1 -2 3 -4 -5 6 9 7
在上面的實(shí)例中,我們創(chuàng)建了一個名為a的二維數(shù)組,然后使用for 循環(huán)和for…each循環(huán)訪問數(shù)組的每個元素。
讓我們看看如何在Java中使用3d數(shù)組。我們可以初始化一個類似于2d數(shù)組的3d數(shù)組。例如,
// test is a 3d array int[][][] test = { { {1, -2, 3}, {2, 3, 4} }, { {-4, -5, 6, 9}, {1}, {2, 3} } };
基本上,3d數(shù)組是2d數(shù)組的數(shù)組。三維陣列的行也可以像二維陣列一樣在長度上有所變化。
class ThreeArray { public static void main(String[] args) { // 創(chuàng)建三維數(shù)組 int[][][] test = { { {1, -2, 3}, {2, 3, 4} }, { {-4, -5, 6, 9}, {1}, {2, 3} } }; //for..each循環(huán)迭代3d數(shù)組的元素 for (int[][] array2D: test) { for (int[] array1D: array2D) { for(int item: array1D) { System.out.println(item); } } } } }
輸出:
1 -2 3 2 3 4 -4 -5 6 9 1 2 3