在本教程中,我們將借助示例學(xué)習(xí)使用2維數(shù)組和3維數(shù)組的Java多維數(shù)組。
在學(xué)習(xí)多維數(shù)組之前,請(qǐng)確保您了解Java數(shù)組。
多維數(shù)組是數(shù)組的數(shù)組。多維數(shù)組的每個(gè)元素都是數(shù)組本身。例如,
int[][] a = new int[3][4];
在這里,我們創(chuàng)建了一個(gè)名為a的多維數(shù)組。它是一個(gè)二維數(shù)組,最多可以容納12個(gè)元素,

記住,Java使用基于零的索引,也就是說,Java中數(shù)組的索引從0開始,而不是從1開始。
讓我們?cè)倥e一個(gè)多維數(shù)組的實(shí)例。這次我們將創(chuàng)建一個(gè)3維數(shù)組。例如,
String[][][] data = new String[3][4][2];
這里,data是一個(gè)三維數(shù)組,最多可以容納24(3*4*2)個(gè)String類型的元素。
這是我們?nèi)绾卧贘ava中初始化二維數(shù)組。
int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};如我們所見,多維數(shù)組的每個(gè)元素都是數(shù)組本身。而且,與C / C ++不同,Java中多維數(shù)組的每一行可以具有不同的長(zhǎng)度。

class MultidimensionalArray {
public static void main(String[] args) {
//創(chuàng)建二維數(shù)組
int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};
//計(jì)算每行的長(zhǎng)度
System.out.println("第1行的長(zhǎng)度: " + a[0].length);
System.out.println("第2行的長(zhǎng)度: " + a[1].length);
System.out.println("第3行的長(zhǎng)度: " + a[2].length);
}
}輸出:
第1行的長(zhǎng)度: 3 第2行的長(zhǎng)度: 4 第3行的長(zhǎng)度: 1
在上面的實(shí)例中,我們創(chuàng)建了一個(gè)名為a的多維數(shù)組,因?yàn)槎嗑S數(shù)組的每個(gè)組件也是一個(gè)數(shù)組(a[0],[1]和a[2]也是數(shù)組)。
這里,我們使用length屬性來計(jì)算每行的長(zhǎng)度。
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)訪問單個(gè)數(shù)組
//在二維數(shù)組中
for (int[] innerArray: a) {
//第二次for ... each循環(huán)訪問行內(nèi)的每個(gè)元素
for(int data: innerArray) {
System.out.println(data);
}
}
}
}輸出:
1 -2 3 -4 -5 6 9 7
在上面的實(shí)例中,我們創(chuàng)建了一個(gè)名為a的二維數(shù)組,然后使用for 循環(huán)和for…each循環(huán)訪問數(shù)組的每個(gè)元素。
讓我們看看如何在Java中使用3d數(shù)組。我們可以初始化一個(gè)類似于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ù)組。三維陣列的行也可以像二維陣列一樣在長(zhǎng)度上有所變化。
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