java二维数组的动态初始化

两种定义 方法

  1. 动态的,可以随意定义二维数组的长度,但是一维数组长度,必须固定
		String[][] arr3 = new String[2][];

        arr3[0] = new String[]{"小明"};
        arr3[0] = new String[2];

        System.out.println(arr3[0]);
        System.out.println(arr3[0][0]);
        System.out.println(arr3[0][1]);
[Ljava.lang.String;@2752f6e2
null
null
  1. 静态的,一维数组和二维数组的长度固定。
 String[][] arr4 = new String[6][6];
        
        for (int i = 0; i < arr4.length; i++) {
            for (int j = 0; j < arr4[i].length; j++) {
                arr4[i][j] = String.valueOf(i * j + "\t");
                System.out.print(arr4[i][j]);
            }
            System.out.println();
        }
0	0	0	0	0	0	
0	1	2	3	4	5	
0	2	4	6	8	10	
0	3	6	9	12	15	
0	4	8	12	16	20	
0	5	10	15	20	25

总结

 1. 二维数组得给,二维数组得元素赋值。
 2. 动态赋值与静态赋值得步骤不同

静态赋值,因为二维数组,已经定义长度了,有了默认值,所以堆空间的一维数组就有地址指向二维数组的首地址
在这里插入图片描述
**动态赋值,因为二维数组,没有给定长度,一维数组就无法找到二维数组的首地址。所以需要先给二维数组赋值或者定义二维数组的长度在赋值,就不会报错了,否者就会报空指针异常
**

  String[][] arr5 = new String[2][];

        arr5[0] = new String[]{"小明","小红"};//赋值

        arr5[1] = new String[2];//给定长度
        arr5[1][0] = "tom";
        arr5[1][1] = "male";

        for (int i = 0; i < arr5.length; i++) {
            for (int j = 0; j < arr5[i].length; j++) {
                System.out.print(arr5[i][j] + "\t");
            }
            System.out.println();
        }
小明	小红	
tom		male	

动态赋值空指针的原因
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值