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、使用二维数组存储班上五个学生三门功课的考试成绩,要求输出每一个学生的总分、
平均分、最高分、最低分--------->使用就按盘录入的方式录入数据。