数组
内存分析
//声明基本数据类型变量
int a = 10;
//创建对象
Scanner scanner = new Scanner(System.in);
//创建数组对象
int[] ageArray = new int[3];
//将数据写入数组
ageArray[1] = 5;
//多声明一个数组变量
int[] otherArray = ageArray;
//通过另一个变量访问数组元素
otherArray[2] = 14;
//数组变量指向新数组对象
otherArray = new int[2];
//给新数组元素赋值
otherArray[1] = 33;
多维数组
多维数组的底层内存存储结构
创建二维数组格式
// 格式1:动态初始化——创建数组对象时就指定了两个维度的数组长度
int[][] arr2d01 = new int[3][2];
arr2d01[0][0] = 100;
// ...
arr2d01[2][1] = 105;
// 格式2:动态初始化——仅指定第一个维度的数组长度
int[][] arr2d02 = new int[3][];
// Java中多维数组不必都是规则矩阵形式
arr2d02[0] = new int[]{3, 5, 7};
arr2d02[1] = new int[]{14, 21, 66, 89};
arr2d02[2] = new int[]{90, 100};
// 格式3:静态初始化——在创建对象时将数据填充
// 此时如果某个元素位置设置为null不会编译报错,但是访问这个位置时还是要先初始化
int[][] arr2d03 = new int[][]{{1,2,3}, {4,5}, null, {6,7,8}};
// 前面设置null的地方,需要初始化才可以访问
arr2d03[2] = new int[]{12,24};
arr2d03[2][0] = 5;
// 格式4:声明变量时,两层[]没在一起(不建议)
int[] x[] = new int[][]{{1,2,3}, {4,5}, {6,7,8}};
访问二维数组元素
遍历二维数组
// 遍历二维数组:需要使用双层嵌套的循环
int[][] arr2d06 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
// 先遍历第一个维度:取出每一个一维数组
for (int i = 0; i < arr2d06.length; i++) {
int[] intArr = arr2d06[i];
for (int j = 0; j < intArr.length; j++) {
int intValue = intArr[j];
System.out.println("intValue["+i+"]["+j+"] = " + intValue);
}
}