二维数组详解.

关于java中的二维数组
        1、二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组。
              int[] array ={86,79,50}; // 一维数组
              int[][] a ={ {16,9,3,6}, {9,7,3,90}, {6,76,0} }; // 二维数组
        3、二维数組 静态初始化
         int[][] a ={ {16,9,3,6}, {9,7,3,90}, {6,76,10} };

1、二维数组的length属性

代码演示如下:

public class ArrayTest07 {
    public static void main(String[] args) {
        int[] array ={86,79,50};
        System.out.println(array.length); // 3

        System.out.println("========二维数组测试如下=========");
        int[][] a ={ {16,9,3,6}, {9,7,3,90}, {6,76,0} };
        System.out.println(a.length); // 3
        System.out.println(a[0].length); // 4    a[0]相当于拿到一维数组 {16,9,3,6}
        System.out.println(a[1].length); // 4
        System.out.println(a[2].length); // 3
    }
}

2、二维数组的元素访问 (读和改)

关于二维数组中元素的:读和改。
    eg: int[][] a ={ {16,9,3,6}, {9,7,3,90}, {6,76,10} };
    a[二维数组中的一维数组的下标][一维数组的下标]
    a[0][0] :表示第1个一维数组中的第1个元素。 // 16
    a[3][10] :表示第4个一维数组中的第101个元素。
    注意:对于a[3][100]来说,其中a[3]是一个整体。[100]是前面a[3]直接结束的结果然后再下标100.

代码演示: 

public class ArrayTest08 {
    public static void main(String[] args) {
        // 二维数组
        int[][] a ={ {16,9,3,6}, {9,7,3,90}, {6,76,10} };

        // 请取出以上二维数中的第一个一维数组
        int[] a1 =a[0]; // 二维数组中第一个一维数组
        // 再取出第一个一维数组里面的第一个元素
        int a2 =a1[0];
        System.out.println("我是二维数组里面第一个一维数组里面的第一个元素:"+a2);  // 16

        // 以上代码合并
        System.out.println(a[0][0]);    // 16

        // 改
        a[0][0] =0;
        System.out.println("二维数组中第一个一维数组里面的第一个元素被修改为:"+a[0][0]);    // 0
    }
}

输出结果:

 3、遍历二维数组

代码演示:

package com.bjpowernode.javase.array;

public class ArrayTest09 {
    public static void main(String[] args) {

        // 二维数组
        String[][] array = {
                {"java", "python", "c++", "oracle"},
                {"junker", "jun", "js"},
                {"bj", "zz", "sh"}
        };

        // for循环遍历
        for (int i = 0; i < array.length; i++) {   // 对二维数组当中的一维数组进行循环遍历
            String[] a = array[i];    // 拿到二维数组当中的一维数组
            for (int j = 0; j < a.length; j++) {   // 对一维数组里面的元素进行循环遍历
                System.out.print(a[j] + " "); // 不换行、+“ ”让java python中间隔开
            }
            // 输出换行符
            System.out.println(); // 换行 [当一个一维数组里面的元素全循环后进行一次换行]
            // 不换行的话全输出在同一直线上了
        }

        System.out.println("=========合并代码如下==========");
        // 合并代码
        // for循环遍历
        for (int i = 0; i < array.length; i++) {   // 对二维数组当中的一维数组进行循环遍历
            for (int j = 0; j < array[i].length; j++) {   // 对一维数组里面的元素进行循环遍历
                System.out.print(array[i][j] + " "); // 不换行、+“ ”让java python中间隔开
            }
            // 输出换行符
            System.out.println(); // 换行 [当一个一维数组里面的元素全循环后进行一次换行]
            // 不换行的话全输出在同一直线上了
        }
    }
}

输出结果:

动态二维数组

package com.bjpowernode.javase.array;

public class ArrayTest09 {
    public static void main(String[] args) {

        // 动态初始方式
        // 3行4列
        int[][] array =new int[3][4]; // 3代表:三个一维数组 4:代表一维数组当中有四个元素

        // 对二维数组进行遍历
        for (int i=0;i<array.length;i++){   // array.length:二维数组当中一维数组的个数
            for (int j=0;j<array[i].length;j++){    // array[i] 拿到一维数组 array[i].length: 判断一维数组当中元素个数
                System.out.print(array[i][j] +" "); // 拿到二维数组中一维数组当中的某个元素 //不换行
            }
            System.out.println( ); //换行
        }
    }
}

运行结果: 

当参数为二维数组时:

package com.bjpowernode.javase.array;

public class ArrayTest09 {
    public static void main(String[] args) {

        int[][] array = {
                {6, 9, 5, 40},
                {36, 0, 26, 78},
                {89, 69, 38}
        };
        ArrayTest09.printArray(array);

    }
        // 定义一个方法
        public static void printArray(int[][] a){
            // 二维数组遍历
            for (int i=0;i<a.length;i++){   //对二维数组里面的一维数组进行遍历 array.length:表示二维数组个数从1开始 (下标从0开始)
                for (int j=0;j<a[i].length;j++){    // 对一维数组里面的元素进行遍历
                    System.out.print(a[i][j] +" ");
                }
                System.out.println( );
            }
        }
}

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值