1.8Java二維數組

1.二維數組定義:
int[][] arr2 = new int[3][2];
int[][] arr2 = new int[3][ ]; //第二維的數組個數不確定情況
另一種定義方式:靜態初始化:
int[][] arr2 = {{,,},{,,},{,,,}};

arr.length; // 二維數組的長度,即一維數組的個數
arr[1].length; //二維數組中角標爲1的一維數組的長度

//int[][] arr2 = new int[3][2];
//System.out.println("二維數組的類型和哈希值:" + arr2);//[[I@7d3598c3
//System.out.println("二位數組中角標爲0的一維數組的類型和哈希值:" + arr2[0]);//[I@49c06a6d
//System.out.println("二位數組中角標爲0的一維數組的角標爲1的元素:" + arr2[0][1]);//0

    int[][] arr2 = new int[3][];
    System.out.println("二維數組的類型和哈希值:" + arr2);//[[I@7d3598c3
    System.out.println("二位數組中角標爲0的一維數組的類型和哈希值:" + arr2[0]); //NULL
//  System.out.println("二位數組中角標爲0的一維數組的角標爲1的元素:" + arr2[0][1]); //空指針異常,運行時異常`

2.內存分析:
int[][] arr2 = new int[3][2];

當沒有給實體賦值時,Java會給實體默認自動初始化:
byte short int long   默認0
double float  默認0.00.0f
boolean    默認false
char  默認 ' \u0000 ' 
引用型  默認NULL(比如定義未初始化二維數組時,內存分析第一維時存放的是NULL,分析到第二維的時候再把第二維的數組地址(如果有)放到第一維內存替換NULL,沒有不替換)

二維數組內存分析

3.遍歷:

//二維遍歷
int[][] arr3 = {{2,3,1},{7,5,4,9},{5,0}};

/*for(int i = 0; i < arr3.length; i++)
{
    for(int j = 0; j < arr3[i].length; j++)
          System.out.print(arr3[i][j] + " ");      //和if一樣,單行語句不需要{}
    System.out.println();
}*/

//foreach實現遍歷:
for(int[] i : arr3)
{
   for(int j: i)
    System.out.print(j + " ");
   System.out.println();
}

4.應用場景:
數多了就用數組,數組多了就用二維數組。
二維數組 可以和 Map 一起使用,也可應用構造查表法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章