part8 二维数组

part8 二维数组

数据需要分组管理的时候用到二维数组:

image

二维数组的静态初始化:

  • 格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,,元素2}{元素1,元素2}};
  • 例:int[][] arr = new int[][]{{11,22},{33,44}};
  • 简便初始化方法:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}};
  • int[][] arr = {{11,22}{33,44}};

直观写法:

// 每个一维数组写一行
int[][] arr3 = {
        {1,2,3},
        {4,5,6,7,8,9},
        {4,5,6}
};

arr[第x-1行数组][第x-1行数组的y-1列] = arr[x][y]

常规的二维数组遍历情形:

       int[][] arr2= {
                {1,2,3,4,5},
                {6,7,8,9,0},
                {11,12,13,14,15}
        };
        for (int i = 0; i < arr2.length; i++) {  
                System.out.println()
        // 外层循环遍历二维数组的行数,遍历次数为二维数组的长度   
            for (int j = 0; j < arr2[i].length; j++) {
        // 内层循环遍历一维数组的列数,遍历次数为当前二维数组的长度
                System.out.print(arr2[i][j]+“ ”);
            }
        }

二维数组的动态初始化:

格式:数据类型[][] 数组名 = new 数据类型[m][n]

  • m表示这个二维数组可以存放多少个一维数组
  • n表示每个一维数组能存放多少元素

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

该数组可以存放2个一维数组,每个一维数组中可以存放3个int类型元素

二维数组的内存图:

image

数据类型[][] 数组名 = new 数据类型[m][n]

  • 在栈内存中声明了一个二位数组变量,保存了二维数组位于堆内存的内存地址
  • 在堆内存中开辟一个二维数组,和n个一维数组,二维数组里储存了一维数组的于堆内存的内存地址

练习:

某商城每个季度的营业额如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

计算出每个季度的总营业额和全年总营业额

       // 静态初始化数组并存入营业额
        int[][] arr2= {
                {22,66,44},
                {77,33,88},
                {25,45,65},
                {11,66,99}
        };
        // 创建一个长度为5的一维数组用来存放四个季度的营业额和总营业额
        int[] arr8 = new int[5];
        // 写一个数组用来遍历数组内的内容
        for (int i = 0; i < arr2.length; i++) {
            for (int j = 0; j < arr2[i].length; j++) {
            // 内层循环累加每一个季度的营业额
            arr8[i] = arr2[i][j]+arr8[i];
            }
            // 外层循环把当前i+1季度的营业额加入总营业额
            arr8[4] = arr8[i] + arr8[4];
        }
        // 输出营业额
        for (int i:arr8){
            System.out.println(i);
        }

Write your comment Here