一,二维数组的创建和初始化
在JAVA中,二维数组不能像C语言一样创建,int[ ][ ]中不能有数字,因为JAVA把int[ ][ ]当作一种类型,且如果在创建时没有赋值,只能一个一个赋值。
/**
* import.....相当于C语言中的 include<>
*/
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
//array,array1中的数组元素全都是默认值0
int array[][] = new int[2][3];
int[][] array1 = new int[2][3];
int[][] array2 = new int[][]{{1,2,3},{2,3,4}};
int[][] array3 = {{1,2,3},{2,3,4}};
/**
* 在JAVA中,
* 可以使用Arrays.deepToString(数组名)来打印二维数组
* 可以使用Arrays.ToString(数组名)来打印一维数组
*/
System.out.println(Arrays.deepToString(array1));
System.out.println(Arrays.deepToString(array2));
System.out.println(Arrays.deepToString(array3));
}
}
二,如何遍历二维数组
在一维数组中,我们使用 数组名.length 获得了一维数组的长度,那么在二维数组中我们是不是可
以用相同的方法得到二维数组的行数和列数呢?答案是肯定的,我们常说二维数组是一种特殊的一
维数组,下面用一幅图来描述一下:
array数组名指向的是array[0]的空间,所以我们可以用array.length来获得行数,又因为array[0]所
指向的是第一行的数据,因此我们可以用array[0].length来获得第一行的列数,同理我们可以用
array[1].length来获得第二行的列数,以此类推......,因此我们获得如下代码:
public class Test {
public static void main(String[] args) {
int[][] array = {{1,2,3},{2,3,4}};
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();//换行
}
}
}
三,不规则的二维数组
在C语言中,我们创建二维数组时必须要确定二维数组的列数,比如 int a[ ][2] = {1,2,3,4};否则无法
得到行数,也就是说C语言是通过列数来倒推行数,但与C语言不同,在JAVA中,我们必须要确定
二维数组的行数,然后再去确定每一行所拥有的列数,从而实现每一行的元素个数不同,如以下代
码:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[][] array = new int[2][];
array[0] = new int[3];
array[1] = new int[5];
System.out.println(Arrays.deepToString(array));
}
}