java之三維數組


理解一:
用一個立方體的bai空間來表示一個三維數組,一du個立方體有長zhi寬高三個維度正好與三維數組對應。
例如:
int[x][y][z] cube;
我們就得到一個長為x,寬為y,高為z的立方體。
假設x=y=z=10,那么cube的長寬高都為10,是正立方體。
那cube[5][6][7]就是指定了在這個立方體內的一個空間位置,即這個立方體中 x坐標為5,y坐標為6,z坐標為7的那個空間位置,具體是多大空間要看單位,如果單位是米那就是指立方米如果單位是厘米,那就是立方厘米。

理解二:

3維構成了一個立方體結構,如同常見的玩具魔方一樣,相對於2維,就多了一個層的概念
int SanWei[][][]={{{5,2,3},{4,5,6}},{{87,7,5},{10,11,12}}};
第一層int SanWei[0][*][*] 是一個二維數組如下
int SanWei[0][0][*] :{5,2,3}
int SanWei[0][1][*] :{4,5,6}
第二層int SanWei[1][*][*] 是一個二維數組如下
int SanWei[1][0][*] :{87,7,5}
int SanWei[1][1][*] :{10,11,12}

2、3維比較容易理解,4維 可以借用3維立方體來理解,魔方的每一塊 都是一個小的魔方,再高維的話,想象力不夠用了

 

 

使用三層循環遍歷多維數組

 

public class Test{
    public static void main(String[] args) {
        int array[][][] = new int[][][]{                    // 創建並初始化數組
                { { 1, 2, 3 }, { 4, 5, 6 } },
                { { 7, 8, 9 }, { 10, 11, 12 } },
                { { 13, 14, 15 }, { 16, 17, 18 } }
            };
        array[1][0][0] = 97;                                // 改變指定數組元素
        for (int i = 0; i < array.length; i++) {            // 遍歷數組
            for (int j = 0; j < array[0].length; j++) {
                for (int k = 0; k < array[0][0].length; k++) {
                    System.out.print(array[i][j][k] + "\t");
                }
                System.out.println();                        // 輸出一維數組后換行
            }
        }
    }


使用foreach 遍歷三維數組
public class TestTwo{
    public static void main(String[] args) {
        int array[][][] = new int[][][]{                    // 創建並初始化數組
                { { 1, 2, 3 }, { 4, 5, 6 } },
                { { 7, 8, 9 }, { 10, 11, 12 } },
                { { 13, 14, 15 }, { 16, 17, 18 } }
            };
        for (int[][] is : array) {                            // 遍歷數組
            for (int[] is2 : is) {
                for (int i : is2) {
                    System.out.print(i + "\t");
                }
                System.out.println();                         // 輸出一維數組后換行
            }
        }
    }
}

 

                System.out.println(array[1][1][0]);//10
                System.out.println(array[1][1][1]);//11
                System.out.println(array[0][0][0]);//1
                System.out.println(array[array.length-1][1][2]);//18
                System.out.println(array[array.length-1][array[0].length-1][array[0][0].length-1]);//18

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM