从零开始学Java-二维数组

129 阅读4分钟

前言

在前面的文章中,我们讲解了java的一维数组,接下来我们来学习一下二维数组吧!

  • 什么是二维数组呢?

    我们来举个简单的例子:前面我们学习了数组,这些数组称之为一维数组,我们可以把这些小的数组存放截进一个大的数组,这个大的数组就简称二维数组!

  • 二维数组的应用场景

    当我们需要把数据分组管理的时候,就需要用到二维数组啦!

  • 二维数组的初始化

    静态数组初始化: 其实是和一维数组的初始化一样哟

      完整格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2}}
      例:int[][] arr = new int[][]{{1,2},{1,2}};
      
      简写格式:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}}.
      例:int[][] arr = {{1,2},{1,2}};
      
    

    我们来看一下静态二维数组的获取某个数组元素:

    // 获取二维数组元素
    int[][] arr1 = new  int[][]{{1,2,3},{4,5,6,7}}; // 完整格式
    int[][] arr2 ={{1,2,3},{4,5,6,7}}; // 简写格式
    // arr1[0][0]表示获取第一个一维数组中的0索引的元素
    System.out.println(arr1[0][0]); // 打印出 1
    System.out.println(arr1[1][1]); // 打印出 5
    

    我们再来看一下静态二维数组的遍历数组元素:

    // 遍历二维数组的元素
    // 外循环:遍历二维数组,得到里面的每一个一维数组
    for (int i = 0; i < arr2.length; i++) {
        // 内循环:遍历一维数组,得到里面的每一个元素
        // i表示二维数组中的每一个元素
        for (int j = 0; j < arr2[i].length; j++) {
            // j表示一维数组中的每一个元素
            System.out.print(arr2[i][j] + " ");
        }
        System.out.println();
    }
    

    关于静态二维数组我们就学习完毕啦,我们接着来学习一下二维数组的动态初始化吧!

    动态数组初始化

      完整格式:数据类型[][] 数组名 = new 数据类型[m][n]
                m:表示这个二维数组可以存放多少个一维数组
                n:表示这个一维数组里面可以存放多少个元素
      例:int[][] arr = new int[2][3];
      表示这个数组可存放2个一维数组,每个一维数组可以存放3个int类型的元素
      
    

    我们来看一下动态二维数组的获取某个数组元素:

    // 给二维数组的第一个数组里面第一个元素赋值10
    arr3[0][0] = 10;
    

    我们再来看一下动态二维数组的遍历数组元素:

    // 外循环:遍历二维数组,得到里面的每一个一维数组
    for (int i = 0; i < arr3.length; i++) {
        // 内循环:遍历一维数组,得到里面的每一个元素
        for (int j = 0; j < arr3[i].length; j++) {
            System.out.print(arr3[i][j] + " ");
        }
        System.out.println();
    }
    
  • 二维数组案例

下面我们来看一个案例吧:

需求:某商场每个季度的营业额如下:单位(万元)。

第一季度:22,66,44。

第二季度:23,85,60。

第三季度:29,70,68。

第四季度:66,50,80。

要求:计算出每个季度的营业额和全年营业额

第一步:定义一个二维数组

// 定义一个二维数组
int[][] arr1 = {
        {22,66,44},
        {23,85,60},
        {29,70,68},
        {66,50,80},
};

第二步:定义一个方法求每个季度的营业额

// 定义一个方法,计算每一个季度的营业额
public static int sumArr(int[] arr){
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}

第三步:遍历求出每个季度的营业额

for (int i = 0; i < arr1.length; i++) {
    // i二维数组中的每一个索引
    // arr1[i] 元素(一维数组)
    int[] quarterArr = arr1[i];
    int sum = sumArr(quarterArr);
    System.out.println("第" + (i + 1) + "个季度的营业额为:" + sum);
}

第四步:求全年营业额

// 定义一个变量用来存放全年营业额
int yearSum = 0;
yearSum += sum;

我们运行看一下吧: image.png

我们来看下完整代码:

public static void main(String[] args) {
      /*需求:某商场每个季度的营业额如下:单位(万元)。
      第一季度:22,66,44。
      第二季度:23,85,60。
      第三季度:29,70,68。
      第四季度:66,50,80。
      要求:计算出每个季度的营业额和全年营业额*/
      // 定义一个二维数组
      int[][] arr1 = {
              {22,66,44},
              {23,85,60},
              {29,70,68},
              {66,50,80},
      };
      // 遍历二维数组,得到每一个一维数组并求和
      // 定义一个变量用来存放全年营业额
      int yearSum = 0;
      for (int i = 0; i < arr1.length; i++) {
          // i二维数组中的每一个索引
          // arr1[i] 元素(一维数组)
          int[] quarterArr = arr1[i];
          int sum = sumArr(quarterArr);
          System.out.println("第" + (i + 1) + "个季度的营业额为:" + sum);
          yearSum += sum;
      }
      System.out.println("全年营业额为:" + yearSum);
  }

  // 定义一个方法,计算每一个季度的营业额
  public static int sumArr(int[] arr){
      int sum = 0;
      for (int i = 0; i < arr.length; i++) {
          sum += arr[i];
      }
      return sum;
  }

好啦,以上就是二维数组的知识点,怎么样,是不是和一维数组一样呢。有什么不懂的可以在评论区评论哟!

==最后非常感谢您的阅读,也希望能得到您的反馈  ==