![e679b841977218734ea4e39d2573e989.png](https://i-blog.csdnimg.cn/blog_migrate/2c254e4b3deb66df253718a74da261c0.jpeg)
(本人很菜,所以以下本文若让您觉得太简单or有问题,请轻拍板砖。欢迎在评论区提出你的问题or补充or解答)
今天在敲代码的时候,发现一个奇妙的点:
(1)关于是否可以在定义时省略列
在C语言中,二维数组无论如何定义的时候都不可以少了列。
所以,以下的这种写法是错误的:
int nuns[][] = { 1,2,3,4,5};
但是在java中,就不一样了。java里是可以不给二维数组定义列数的。
直接上代码:
boolean[][] a = {{true,true,false,false},{false,false,true,true}};
boolean[][] b={};
了解了这一点后,我又去网上搜了下,再补充一种情况:
(2)有一种特殊的二维数组,它的行数确定,但是每行的列数不确定。
这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化。举例如下:
package day5;
//第二种定义二维数组的方式,它的行数确定,但是每行的列数不确定。这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化。
public class TwoArrayDemo_3 {
public static void main(String[] args) {
int [][]arr=new int[3][];
//第一行
arr[0]=new int[7];//相当于int[] a=new int[3]
for(int i=0;i<arr[0].length;i++){
arr[0][i]=i+1;
}
//第二行
arr[1]=new int[4];
for(int i=0;i<arr[1].length;i++){
arr[1][i]=i+1;
}
//第三行
arr[2]=new int[8];
for(int i=0;i<arr[2].length;i++){
arr[2][i]=i+1;
}
//遍历数组
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();
}
}
}
以上代码就是分行定义,最后得到的是一个三行八列的数组。
ps:
以及,要注意一点:java中的数组自带length属性,例如:假设有个二维数组a[][]
a.length就是行数,a[0].length就是列数
(以后本文也许还会有补充)
参考:
java基础之二维数组不定义列数 - 索隆十郎 - 博客园www.cnblogs.com