Java二維陣列

2023-04-30 12:00:29

二維陣列

二維陣列的應用場景:

但我們需要把資料分組管理的時候,就需要用到二維陣列

二維陣列初始化:

1、靜態初始化:

格式:

資料型別[][]陣列名 =new 資料型別[][]{{元素1,元素2},{元素1,元素2}};

eg:

int [][] arr = new int[][]{{11,22},{33,44}}

簡化格式:

資料型別[][]陣列名 ={{元素1,元素2},{元素1,元素2}};

eg:

int[][] arr = {{11,22},{33,44}}

或者:(一般不建議用)

int arr [][] = {{11,22},{33,44}}

例子:二維陣列初始化

package com.itheima.Method;
//二維陣列初始化
public class 二維陣列加遍歷 {
    public static void main(String[] args) {
        //兩種方式靜態初始化陣列
        int[][] arr = new int[][]{{12, 25, 36}, {52, 74, 68}, {88, 32, 60}};
        int[][] arr1 = {{12, 25, 36}, {52, 74, 68},{88, 32, 60}};
        int[][] arr2 = {
                {12, 25, 36},
                {52, 74, 68},//每一個一維陣列其實是二維陣列的元素中的元素,所以每一個一維陣列之間都需要用逗號隔開
                {88, 32, 60}//最後一個一維陣列後面不需要加逗號
        };
        //獲取陣列
//        System.out.println(arr2[0]);//表示獲取二維陣列中的第一個一維陣列
        //arr2[0]:表示獲取二維陣列中的第一個一維陣列
        //arr2[0][0]:獲取第1個一維陣列中0索引的元素
        System.out.println(arr2[0][0]);//12
        System.out.println(arr[2][0]);//88

執行結果:

12
88

例子:二維陣列遍歷

package com.itheima.Method;
//二維陣列初始化
public class 二維陣列加遍歷 {
    public static void main(String[] args) {
        //兩種方式靜態初始化陣列
        int[][] arr = new int[][]{{12, 25, 36}, {52, 74, 68}, {88, 32, 60}};
        int[][] arr1 = {{12, 25, 36}, {52, 74, 68},{88, 32, 60}};
        int[][] arr2 = {
                {12, 25, 36},
                {52, 74, 68},//每一個一維陣列其實是二維陣列的元素中的元素,所以每一個一維陣列之間都需要用逗號隔開
                {88, 32, 60}//最後一個一維陣列後面不需要加逗號
        };
        //遍歷二維陣列
        //外迴圈:遍歷二維陣列裡面的一維陣列
        for (int i = 0; i < arr2.length; i++) {
            //i:表示二維陣列中的每一個索引
            //arr2[i]:表示以為陣列中的每一個元素(一維陣列)
            //內迴圈:遍歷一維陣列,得到裡面的每一個元素
            for (int j = 0; j < arr2[i].length; j++) {
                //j表示一維陣列中的每一個元素
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();//換行
        }
    }
}

執行結果:

12 25 36
52 74 68
88 32 60

2、動態初始化:

格式:資料型別[][] 陣列名 = new 資料型別[m][n] ;

m:表示這個二二維陣列可以存放多少個一維陣列

n:表示這每一個一維陣列可以存放多少個元素

eg:

int[][] arr = new int[2][3];

該陣列可以存放兩個一維陣列,每一個一維陣列中可以存放三個int型別元素

例子:

package com.itheima.Method;

public class 二維陣列動態初始化加遍歷 {
    public static void main(String[] args) {
        int [][] arr = new int[3][5];
        arr[0][0] = 10;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}

執行結果::

10 0 0 0 0
0 0 0 0 0
0 0 0 0 0

二維陣列記憶體圖:

二維陣列的特殊情況:

特殊情況1:

特殊情況2:

二維陣列練習

二維陣列的練習:

計算出某商城每個季度的總營業額和全年的總營業額

package com.itheima.Method;

/*
二維陣列的練習:
計算出某商城每個季度的總營業額和全年的總營業額
 */
public class 二維陣列練習 {
    public static void main(String[] args) {
        int[][] yearArr = {
                {22, 66, 44},
                {77, 33, 88},
                {25, 45, 65},
                {11, 66, 99}
        };//定義一個二維陣列
        int yearSum = 0;//定義一個總營業額變數。
        for (int i = 0; i < yearArr.length; i++) {
            int[] seasonArr = yearArr[i];//定義一個變數,儲存每一個季度的營業額
            int sum = sumSeasonArr(seasonArr);//呼叫每一個季度的營業額方法
            System.out.println("第"+i+1+"個季度的營業額為:"+sum);
            yearSum +=sum;//全年總營業額
        }
        System.out.println("全年總營業額為:"+yearSum);
    }
    //定義一個方法,計算每一個季度的營業額
    public static int sumSeasonArr(int[] arr) {
        int sum = 0;//定義一個求和的變數
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];//遍歷每一個季度,並求每一個季度的和
        }
        return sum;//返回變數
    }
}

執行結果:

第01個季度的營業額為:132
第11個季度的營業額為:198
第21個季度的營業額為:135
第31個季度的營業額為:176
全年總營業額為:641