Java二维数组的使用
1.二维数组的初始化:
和一维数组一样,也有静态初始化和动态初始化。(具体如下)
public class Main {
public static void main(String[] args) {
int[][] garb=new int[][]{{1,2,3,4},{8,9,10}};
//静态初始化
String[][] matter=new String[4][5];
//动态初始化一
float[][] test=new float[5][];
//动态初始化二
System.out.println();
}
}
注意:无论一维数组还是二维数组静态初始化都可以写成下形式,这样系统会根据你的赋值进行判断的。也是可行的,但是为了规范还是都写全叭。
public class Main {
public static void main(String[] args) {
int[][] garb={{2,5,8},{1,2,3}};
System.out.println(garb[1][1]);
}
}
2.二维数组的长度:
二维数组可以理解为由行和列组成,都在堆中。因为二维长度无法计算,所以只可以计算出行或者列的长度。
所以就直接看下例叭:
public class Main {
public static void main(String[] args) {
int[][] garb=new int[][]{{1,2,3},{8,9,10}};
System.out.println(garb.length);
}
}
上例是求行的长度,即结果为2
public class Main {
public static void main(String[] args) {
int[][] garb=new int[][]{{1,2,3},{8,9,10}};
System.out.println(garb[1].length);
}
}
这个例子求的是第一行中的元素的长度,即列的长度为3。
3.遍历二维数组:
一维数组用for循环做遍历,二维数组也可以,也就是用两个for循环嵌套。如下例:
public class Main {
public static void main(String[] args) {
int[][] garb=new int[][]{{1,2,3,4},{8,9,10}};
for (int i=0;i< garb.length;i++){
for (int j=0;j<garb[i].length;j++){
System.out.print(garb[i][j]+"\t");
}
System.out.println();
}
}
}
4.二维数组的调用:
和一维数组一样,只要写对角标就可以正确调用,就不举例子了。
5.二维数组的默认初始化值:
二维数组的默认初始化值如果具体到元素,则与一维数组相同(即1.整型是0;2.浮点型是0.0;3.char型是0;4.boolean型是false;5.引用型是null)如下:结果就是0
public class Main {
public static void main(String[] args) {
int[][] garb=new int[4][5];
System.out.println(garb[0][0]);
}
}
但是,如果只是求外层元素的默认初始化值(如下例),输出结果为该外层元素的地址值。下例子结果是[I@1b6d3586
public class Main {
public static void main(String[] args) {
int[][] garb=new int[4][5];
System.out.println(garb[0]);
}
}
如果未给内层元素数组长度,但是还是要求外层元素的默认初始化值,则如下例:运行后会发现,无论数组是啥类型的,结果都是null
public class Main {
public static void main(String[] args) {
int[][] garb=new int[5][];
System.out.println(garb[0]);
}
}
也许你可能疑问,如果我未给内层元素数组长度,却求内层元素的默认初始化值(如下例)那么结果肯定会报错。
public class Main {
public static void main(String[] args) {
int[][] garb=new int[4][];
System.out.println(garb[0][0]);
}
}