若文章内容或图片失效请留言反馈部分素材来自网络若不小心影响到您的利益请联系博主删除

写这篇博客旨在制作笔记方便个人在线阅览巩固知识无他用



二维数组的静态初始化


  • 格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1, 元素2}, {元素1, 元素2}};
  • 范例:int[][] arr = new int[][]{{11, 22}, {33, 44}};
  • 简化格式:数据类型[][] 数组名 = {{元素1, 元素2}, {元素1, 元素2}};
  • 范例①:int[][] arr = {{11, 22}, {33, 44}};(推荐)
  • 范例②:int arr[][] = {{11, 22}, {33, 44}};

阿里巴巴 Java 开发手册

  • 【强制】中括号是数组类型的一部分,数组定义如下:String[] args;
  • 反例:使用 String args[]

  • 静态初始化
int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5, 6, 7, 8}};
int[][] arr2 = {{1, 2, 3}, {4, 5, 6, 7, 8}};
int[][] arr3 = {
        {1, 2, 3},
        {4, 5, 6, 7, 8}
};

打印输出测试

System.out.println("arr3[0][0]:" + arr3[0][0]);
System.out.println("arr3[1][4]:" + arr3[1][4]);

  • 遍历方式一
for (int i = 0; i < arr3.length; i++) {
    for (int j = 0; j < arr3[i].length; j++) {
        System.out.print(arr3[i][j] + " ");
    }
}
  • 遍历方式二
for (int[] ints : arr3) {
    for (int anInt : ints) {
        System.out.print(anInt + " ");
    }
}

二维数组的动态初始化


  • 格式:数据类型[][] 数组名 = new 数据类型[m][n]
  • java 二维数组json转二维数组 java二维数组用法_一维数组
  • java 二维数组json转二维数组 java二维数组用法_java_02
  • 范例:int[][] arr = new int[2][3]
  • 该数组可以存放 java 二维数组json转二维数组 java二维数组用法_System_03 个一维数组,每一个一维数组可以存放 java 二维数组json转二维数组 java二维数组用法_java 二维数组json转二维数组_04 个 int

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

arr[0][0] = 10;

二维数组的内存图


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

java 二维数组json转二维数组 java二维数组用法_数据类型_05


int[][] arr = new int[2][];
int[] arr1 = {11, 22};
int[] arr2 = {33, 44, 55};
arr[0] = arr1;
arr[1] = arr2;

new int[2][] 先在堆中开辟了一个空间,之后把 arr1[]arr2[] 的地址值赋值给 arr[][] 下的空间。

java 二维数组json转二维数组 java二维数组用法_java_06


int[][] arr = new int[2][3];
int[] arr1 = {11, 22};
int[] arr2 = {33, 44, 55};
arr[0] = arr1;
arr[1] = arr2;

new int[2][3] 先在堆中开辟了一个空间,并记录了相关地址值,之后 arr1[]arr2[] 的地址值覆盖了给 arr[][] 下所记录的地址值。

java 二维数组json转二维数组 java二维数组用法_数据类型_07


小练习


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

  • 第一季度:22、66、44
  • 第二季度:77、33、88
  • 第三季度:25、45、65
  • 第四季度:11、66、99

要求计算出各个季度的总营业额和全年的总营业额


代码

public class TwoDimensionalArray {
    public static void main(String[] args) {
        int[][] arr = {
                {22, 66, 44},
                {77, 33, 88},
                {25, 45, 65},
                {11, 66, 99}
        };
        
        int yearSum = 0;

        for (int i = 0; i < arr.length; i++) {
            int[] ints = arr[i];
            int monthSum = getSum(ints);
            System.out.println("第 " + (i + 1) + " 个季度的总营业额是:" + monthSum);
            yearSum = yearSum + monthSum;
        }
        
        System.out.println("全年的总营业额是:" + yearSum);
    }

    public static int getSum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
}

控制台打印信息

第 1 个季度的总营业额是:132
第 2 个季度的总营业额是:198
第 3 个季度的总营业额是:135
第 4 个季度的总营业额是:176
全年的总营业额是:641