二维数组的创建
public class shuzu21 {
public static void main(String[] args) {
// 1.二维数组的声明和初始化
int[] arr = new int[]{1, 2, 3};//一维数组
// 静态初始化
int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5}};
// 动态初始化
int[][] arr2 = new int[4][5];
String[][] arr3 = new String[4][2];
String[][] arr4 = new String[4][];
// 类型推断
int[][] arr5 = {{1, 2, 3, 4}, {2, 4}};
// 2.如何调用二维数组的指定位置的元素
System.out.println(arr1[0][2]);//3
System.out.println(arr3[0][0]);//null
arr4[0]=new String[4];
System.out.println(arr4[0][0]);//如果不先定义,就为空指针
// 3.获取数组的长度
System.out.println(arr5.length);//2
System.out.println(arr5[0].length);//4
// 4.如何遍历二维数组(两层for循环)
System.out.println("_____________");
for(int i=0;i<arr5.length;i++){
for(int j=0;j<arr5[i].length;j++){
System.out.print(arr5[i][j]+" ");
}
System.out.println();
}
}
}
二维数组的使用
public class shuzu22 {
public static void main(String[] args) {
// 二维数组的使用
// 分为外层数组元素和内层数组元素
//
// 5.二维数组的元素默认初始值
/* 写法一 int[][] arr = new int[4][3];
外层元素初始化值为地址值
内层元素初始化值等同一维数组类型
写法二 String[][] arr2 = new String[4][];
外层元素 初始化值为null
内层元素初始化值为不能调用,否则报错
*/
int[][] arr = new int[4][3];
System.out.println(arr[0]);//[I@119d7047地址值
System.out.println(arr[0][0]);//0
System.out.println(arr);//[[I@776ec8df
System.out.println("----------------");
String[][] arr1 = new String[4][4];
System.out.println(arr1[1]);//地址值
System.out.println(arr1[1][1]);//null
System.out.println("----------------");
String[][] arr2 = new String[4][];
System.out.println(arr2[2]);//null
// System.out.println(arr2[2][1]);空指针异常
/*
6.二位数组的内存解析
* */
}
}