20.2 二维数组

二维数组

1.二维数组的声明与创建

package com.bjpowernode.javase.array;
/*
关于java中的二维数组
    1、二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组。
    2、三维数组是什么?
        三维数组是一个特殊的二维数组,特殊在这个二维数组中每一个元素是一个一维数组。
        实际的开发中使用最多的就是一维数组。二维数组也很少使用。三维数组几乎不用。
    3、二维数组静态初始化
        int[][] array = {{1,1,1},{2,3,4,5},{0,0,0,0},{2,3,4,5},{2,3,4,5},{2,3,4,5},{2,3,4,5}};
 */
public class ArrayTest09 {
    public static void main(String[] args) {
        // 一维数组
        int[] array = {100, 200, 300};
        System.out.println(array.length); // 3
        System.out.println("=======================");

        // 二维数组
        // 以下代码当中:里面的是4个一维数组。
        int[][] a = {
                {100, 200, 300},
                {30, 20, 40, 50, 60},
                {6, 7, 9, 1},
                {0}
        };
        System.out.println(a.length); // 4
        System.out.println(a[0].length); // 3
        System.out.println(a[1].length); // 5
        System.out.println(a[2].length); // 4
        System.out.println(a[3].length); // 1

        // 里面的是5个一维数组。
        int[][] a2 = {
                {100, 200, 300},
                {30, 20, 40, 50, 60},
                {6, 7, 9, 1},
                {0},
                {1,2,3,4,5}
        };

    }
}

2.二维数组元素的访问和修改

package com.bjpowernode.javase.array;

/*
关于二维数组中元素的:读和改。

    a[二维数组中的一维数组的下标][一维数组的下标]

    a[0][0]:表示第1个一维数组中的第1个元素。

    a[3][100]:表示第4个一维数组中的第101个元素。

    注意:对于a[3][100]来说,其中 a[3] 是一个整体。[100]是前面a[3]执行结束的结果然后再下标100.
 */
public class ArrayTest10 {
    public static void main(String[] args) {
        // 二维数组
        int[][] a = {
                {34,4,65},
                {100,200,3900,111},
                {0}
        };

        // 请取出以上二维数组的第1个一维数组。
        int[] 我是第1个一维数组 = a[0];
        int 我是第1个一维数组中的第1个元素 = 我是第1个一维数组[0];
        System.out.println(我是第1个一维数组中的第1个元素);

        // 以下代码的由来是因为以上代码的合并导致的。
        System.out.println(a[0][0]);

        // 取出第2个一维数组当中第3个元素
        System.out.println("第二个一维数组中第三个元素:" + a[1][2]);

        // 取出第3个一维数组当中第1个元素
        System.out.println("第3个一维数组中第1个元素:" + a[2][0]);

        // 改
        a[2][0] = 11111;
        System.out.println(a[2][0]);

        // 注意别越界。
        //java.lang.ArrayIndexOutOfBoundsException
        //System.out.println(a[2][1]);
    }
}

3.二维数组的遍历

package com.bjpowernode.javase.array;

/*
二维数组的遍历
 */
public class ArrayTest11 {
    public static void main(String[] args) {

        // 二维数组
        String[][] array = {
                {"java", "oracle", "c++", "python", "c#"},
                {"张三", "李四", "王五"},
                {"lucy", "jack", "rose"}
        };

        // 遍历二维数组
        for(int i = 0; i < array.length; i++){ // 外层循环3次。(负责纵向。)
            String[] 一维数组 = array[i];
            // 负责遍历一维数组
            for(int j = 0; j < 一维数组.length; j++){
                System.out.print(一维数组[j] + " ");
            }
            // 输出换行符
            System.out.println();
        }

        // 合并代码
        for(int i = 0; i < array.length; i++){ // 外层循环3次。(负责纵向。)
            for(int j = 0; j < array[i].length; j++){
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
    }
}

注意:

package com.bjpowernode.javase.array;
// Object[] 这是一个万能的口袋,这个口袋中可以装任何引用数据类型的数据。
public class ArrayTest13 {
    public static void main(String[] args) {

        //String s = new String("fdsafdjsklafjdksl");
        String s = "fdsafdjsklafjdksl";
        int i = 10;

        // 注意:"abc" 这是一个字符串对象,字符串在java中有优待,不需要new也是一个对象。
        // "abc" 字符串也是java对象,属于String类型。
        Object[] arr = {new Husband(), new Wife(), "abc"};
    }
}

class Husband {

}

class Wife {

}

你可能感兴趣的:(学习)