09-二维数组

马铃薯1 / 2023-07-22 / 原文

二维数组介绍

在Java中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组

二维数组的声明和创建

数组定义格式:

a) 数据类型[][] 数组名; 例如 int[][] array//首选的方法

b) 数据类型 数组名[][]; 例如 int array[][]//不是首选的方法,但效果相同

二维数组的初始化

a) 动态初始化:在声明的同时创建数组对象

格式:数据类型[][] 数组名 = new 数据类型[二维数组的长度][一维数组的长度];

例如 int[][] arr = new int[2][3];  arr数组里面有两个一维数组,每个一维数组里面有三个元素

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

        //动态初始化:在声明的同时创建数组对象
        //格式:数据类型[][] 数组名 = new 数据类型[二维数组的长度][一维数组的长度];

        //arr数组里面有两个一维数组,每个一维数组里面有三个元素
        int[][] arr = new int[2][3];

        //遍历arr的每个一维数组
        for(int i = 0; i < arr.length; i++){
            //遍历一维数组的每个元素(数组)
            for(int j = 0; j < arr[i].length; j++){
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println("");
        }
    }
}

b) 动态初始化:先声明再定义数组对象(开辟数组空间)

格式:数据类型[][] 数组名 = new 数据类型[二维数组的长度][];

例如 int[][] arr new int[2][];  arr数组里面有两个一维数组,但每个一维数组里面的元素个素可以是不一样的

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

        /**
         * 动态初始化:先声明再定义数组对象(开辟数组空间)
         * 格式:数据类型[][] 数组名 = new 数据类型[二维数组的长度][];
         *
         * 有一个需求:动态地创建一个二维数组,并输出
         *
         * i = 0: 1
         * i = 1: 2  2
         * i = 2: 3  3  3
         *
         * 一共有三个一维数组,每个一维数组的元素是不一样的
         *
         */
        
        //arr数组里面有两个一维数组,但每个一维数组里面的元素个素可以是不一样的
        int[][] arr = new int[3][];

        //遍历arr的每个一维数组
        for(int i = 0; i < arr.length; i++){
            //这里需要注意,要给每个一维数组开辟空间 new
            //如果没有给一维数组 new ,那么 arr[i] 就是 null
            arr[i] = new int[i + 1];

            //遍历一维数组,并给一维数组的每个元素赋值
            for(int j = 0; j < arr[i].length; j++){
                arr[i][j] = i + 1;
            }
        }

        //输出,遍历
        for(int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr[i].length; j++){
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println("");
        }

    }
}

c) 静态初始化:在声明的同时对数组进行赋值

完整格式为:数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3…};

简化格式为:数据类型[ ] 数组名 = {元素1,元素2,元素3…};