package com.atyanda.java;
/*
* 二维数组的使用
*
* 1.理解:
* 对于二维数组的理解,可以看成是一维数组array1作为另一个一维数组array2的元素而存在
* 2.二维数组的使用:
* (1)二维数组的声明和初始化
* (2)如何调用数组的指定位置的元素
* (3)如何获取数组的长度
* (4)如何遍历数组
* (5)数组元素的默认初始化值 见ArrayText1.java
* (6)数组的内存解析
*
*/
public class ArrayText2 {
public static void main(String[] args){
/*(1)二维数组的声明及初始化
/*静态初始化:
* 类似与一维数组的静态初始化,两个方括号说明是二维数组,只不过第一层数组的每一个元素又是一个新的数组;
*/
int[][] arr1 = new int[][]{{1,2,4},{2,8,9,7},{2,0}};
/*
* 动态初始化一:
* 下面这一个二维数组是第一层五个元素,第一层每个元素又相当于一个含有三个元素的数组。
*/
String[][] arr2 = new String[5][3];
/*
* 动态初始化二:
* 对于二维数组可以只定义一个外层数组的元素个数,可以不用定义内层元素。
*/
String[][] arr3 = new String[3][];
//二、二维数组的元素的调用
//外层存地址,内层存值。
System.out.println(arr1[1][0]);//2 意思是第二个元素代表的数组中的第一个元素。
System.out.println(arr1[1]);//[I@15db9742 输出一个十六进制的地址,一个[意思是一维数组,@后面是地址值。
System.out.println(arr1);//[[I@6d06d69c 两个[[意思是这个数组是二维数组,后面是地址
//*****************************************************************
System.out.println(arr2[1][0]);//null String类型初始化值为null。
//*****************************************************************
System.out.println(arr3[0]);//null 这里一般不是null就是 地址,如果是上面arr3这种输出就是null,如果是arr2这种输出就是地址。
//System.out.println(arr3[2][0]);//出错 内层数组没定义,也就是无地址,空指针,所以无法输出。
//三、获取数组长度(属性)
System.out.println(arr1.length); //3 外层长度
System.out.println(arr1[1].length);//4 内层某一个长度
//四、遍历二维数组
for(int i = 0;i < arr1.length;i++) {
for(int j = 0;j < arr1[i].length;j++) {
System.out.print(arr1[i][j]+" ");//是为了内层数组的元素 每组 放在一起
}
System.out.println();
}
//五、二维数组的默认初始化值
//arr1型内层初始化值为0,因为元素为整型;外层初始化值为地址值。(arr2型的一种)
//arr2型内层初始化值和元素类型有关,外层为地址值
//arr3型外层初始值为null;内层不能调用,报错。(因为内层空指针,没有确切地址)
//六、内存结构()
}
}
第十一天二维数组
最新推荐文章于 2024-03-18 14:43:54 发布