JAVA中如何创建一个二维数组,然后给二维数组赋值!

Python020

JAVA中如何创建一个二维数组,然后给二维数组赋值!,第1张

1,创建二维数组语句:int[][] array = new int[3][3]

2,直接创建二维数组并赋值语句:int[][] array ={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}

二维数组,也可以理解为用一维数组保存的元素为一维数组。对于三维数组,等等,都可以这样划分。不过我们在编程中使用三维以上的数组比较少。因为那样使用起来非常不方便。下面我们来学习二维数组的声明。其声明同一位数组一样,可以先声明再分配内存,也可以声明时分配内存

第一种,先声明再分配内存的方式

数组声明: 数据类型 数组名[][]

内存分配: 数组名 = new 数据类型[行的个数][列的个数]

举例: 假如我们需要统计一个象棋上放的是黑棋还是白棋。这时,我们可以建立一个坐标,即以象棋盘的两边建立坐标轴。这时,我们可以这样定义这个二维数组:

声明数组: int Chess[][]

内存分配Chess= new int[64][64]

第二种,即声明时即分配内存的方式。

使用格式是: 数据类型 数组名[][] =new 数据类型 [行的个数][列的个数]

使用上个步骤中的例子,我们可以将数组的声明和分配内存写成以下方式:

声明即分配内存:int Chess[][] = new int[64][64]

二维数组的赋值,同一维数组类似。只是在{}中的每个元素又是每个一维数组。如下格式:

数据类型 数据名[][]={

{值1,值2,值3,值4 },//第一行数据

{值5,值6,值7,值8}, //第二行数据

...,

}

二维数组中,可以有列数不相等的数组。即每一行的列数不同时。我们需要对每一行进行赋值。

对于这两种二维数组。我们分别来进行分别举例进行赋值。第一种是:列数相同的数组

其赋值格式如下:

String ClassRoom[][]={

{"小王","小李","小张"},

{"小红","小明","小花"},

}

即第一行的人数和第二行的人数相同。

第二种:即列数不相等的数组的赋值格式如下:

String ClassRoom[][]={

{"小王","小李","小张"},

{"小红","小明","小花"},

{"小雨","小风","小平","小雷"},

{"小单"}

}

看上述例子。对于不同的行,其相应的列数是不同的。

最不严谨的写法(但是可用)下列方法可以不需知道二维数组的宽度和长度,但是不能直接保存,而是输入完成之后才能保存,如果需要更完善的方法,则先输入宽度与长度,然后再输入字符,可实现:

public static void main(String[] args) throws Exception {

        Scanner scanner = new Scanner(System.in)

        ArrayList<String> list = new ArrayList<>()

        int maxCol = 0

        while (true) {

            String line = scanner.nextLine()

            if (line.equals(" "))

                break

            int l = line.length()

            if (maxCol < l) {

                maxCol = l

            }

            list.add(line)

        }

        scanner.close()

        char[][] chars = new char[list.size()][maxCol]

        int i = 0

        for (String line : list) {

            chars[i++] = line.toCharArray()

        }

        System.out.println("Print your input: ")

        for (char[] aChar : chars) {

            System.out.println(new String(aChar))

        }

    }

输入:

***@*

*@@*@

*@**@

@@@*@

@@**@

@@@@@

如果想结束,最后一行,输入一个空格" ",然后回车结束。

java中使用 [][] 来定义二维数组,定义数组时也可同时初始化。

两种初始化形式:

格式1、动态初始化

数据类型 数组名 [ ][ ] = new 数据类型[m][n]

数据类型 [ ][ ]  数组名 = new 数据类型[m][n]

数据类型 [ ]   数组名 [ ] = new 数据类型[m][n]

举例:int [ ][ ]  arr=new  int [5][3] 也可以理解为“5行3例”。

格式2、 静态初始化

数据类型 [ ][ ]   数组名 = {{元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....}

举例:int [ ][ ]  arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}。

二维数组的使用举例:

例1、定义一个二维数组 int[ ][ ]  arr = {{5,7,9},{12,14,16,18},{23,25,36,47},{22,54,65,15},{22,34}}求数组元素的和。

输出结果:

例2、使用二维数组存储班上五个学生三门功课的考试成绩,要求输出每一个学生的总分、

平均分、最高分、最低分--------->使用就按盘录入的方式录入数据。