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 

  

  




posted @ 2020-08-05 17:00  烟雨楼台,行云流水  阅读(215)  评论(0编辑  收藏  举报