定义
有四种定义二维数组的方法:
public static void main(String[] args) {
int[][] array1 = {{1,2,3},{1,3,4}};//2行3列
int[][] array2 = new int[2][3];//默认是0,2行3列
int[][] array3 = new int[][]{{1,2,3},{4,5,6}};//2行3列
int[][] array4 = new int[2][];//可以省略列,但是不可以省略行,不规则二维数组
}
二维数组的长度以及行数表示
array.length;表示数组的长度,即列数
array[i].length;表示第i列的长度,即行数
打印
1输出二维数组的一个元素
public static void main(String[] args){
int[][] array = {{1,2,3},{1,3,4}};
System.out.println(array[0][1]);
}
2、知道数组的行和列,for循环打印
public static void main(String[] args){
int[][] array = {{1,2,3},{1,3,4}};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
3、规则的二维数组,在不知道数组的行和列的情况下,for循环打印
public static void main(String[] args){
int[][] array = {{1,2,3},{1,3,4}};
show(array);
}
public static void show(int[][] array){
//array[i]是一个地址
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
4、使用Arrays.deepToString()
函数
public static void main(String[] args){
int[][] array = {{1,2,3},{1,3,4}};
System.out.println(Arrays.deepToString(array));
}
4的打印结果:
不规则二维数组
打印的时候如果直接调用方法
public static void main(String[] args) {
int[][] array = new int[2][];
show(array);
}
public static void show(int[][] array){
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
会报错:空指针异常
自己要定义列数
public static void main(String[] args) {
int[][] array = new int[2][];
array[0] = new int[3];
array[1] = new int[2];
show(array);
}
public static void show(int[][] array){
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
打印结果: