Java基础之二维数组
二维数组概念
二维数组的概念
对于二维数组的理解,我们可以看成一位数组arrary1有作为另一个一维数组arrary2的元素存在。从底层机制来看没有多维数组概念
2二维数组的使用
二维数组的声明与初始化
如何调用指定的元素
如何获取数组的长度
数组元素默认初始化值
数组的内存解析
初始化
二维数组的声明与初始化
int[] arrq = new int[]{1,2,3};//一维数组的静态
//动态初始化
String [][] arr3 = new String[3][];//正确。但元素2未赋值调用会报空指针
String[][] arr2 = new String[3][2];//正确
//调用数组元素
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化
System.out.println(arr1[0][1]);
测试
2
null
调用数组元素2
String [][] arr3 = new String[3][];//正确;但里面数组未赋值,不能调用
String[][] arr2 = new String[3][2];//正确
//调用数组元素
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化
System.out.println(arr1[0][1]);
System.out.println(arr2[1][1]);
System.out.println("\n\n"); //打印两个换行
arr3[1] = new String[4];//初始化arr3[1]这个元素
//调用这个arr3[1][0]元素的值
System.out.println(arr3[1][0]);
测试
2
null
null
获取数组长度
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化
System.out.println("外围数组长度: "+arr1.length); //获取外围数组的长度
System.out.println("内层循环下标1(从0开始)的数组长度: "+arr1[1].length);//获取内层数组的长度
System.out.println("****************************************************************");
测试
外围数组长度: 3
内层循环下标1(从0开始)的数组长度: 2
****************************************************************
遍历二维数组
for (int i =0; i<arr2.length;i++){
for (int z=0; z<arr2[i].length;z++){
//System.out.println(arr2[i]);
System.out.println("********");
System.out.println(arr2[i][z]);
}
}
测试
********
null
********
null
********
null
********
null
********
null
********
null
默认初始化值
String[][] arr2 = new String[3][2];//正确
for (int i =0; i<arr2.length;i++){
for (int z=0; z<arr2[i].length;z++){
System.out.println(arr2[i]);//内存地址
System.out.println("********");
System.out.println(arr2[i][z]);//null
}
}
测试
[Ljava.lang.String;@1540e19d
********
null
[Ljava.lang.String;@1540e19d
********
null
[Ljava.lang.String;@677327b6
********
null
[Ljava.lang.String;@677327b6
********
null
[Ljava.lang.String;@14ae5a5
********
null
[Ljava.lang.String;@14ae5a5
********
null
打印杨晖三角
for (int i=0; i<yanghuisanjiao.length;i++){
yanghuisanjiao[i] = new int[i+1];
//连续赋值
yanghuisanjiao[i][0] = yanghuisanjiao[i][i] =1;
if (i>1){
for (int j = 1; j<yanghuisanjiao[i].length-1;j++ ){
yanghuisanjiao[i][j]= yanghuisanjiao[i-1][j-1]+ yanghuisanjiao[i-1][j];
}
}
}
for (int i =0; i<yanghuisanjiao.length;i++){
for (int j=0; j<yanghuisanjiao[i].length;j++){
System.out.print(yanghuisanjiao[i][j]+" ");
}
System.out.println();
}
测试
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
草都可以从石头缝隙中长出来更可况你呢

浙公网安备 33010602011771号