1.在Java中对于数组的数组我们称之为二维数组。
二维数组:类型说明符 数组名[常量表达式][常量表达式]。
二维数组又称为矩阵,行列数相等的矩阵称为方阵。
对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素
①二维数组的定义:
int a[][] = new int[5][5];
int b[][];
b = new int[3][2];
a[0][0]=1;
int[][] c = {{1, 2}, {3, 4}, {5}};
类似于一维数组,我们可以在{}内进行直接定义,注意当我们通过{}来定义数组的时候比须写在一行里面。
②二维数组赋值和遍历
例:我们对于5个学生和其对应的5门课的成绩进行循环赋值和遍历。
int[][] a = new int[5][5];
int total = 0;
for (int i = 0; i < a.length; i++) {
int sum = 0;
for (int j = 0; j < a[i].length; j++) {
a[i][j] = (int) (Math.random() * 100);
sum += a[i][j];
}
}
for (int i = 0; i < a.length; i++) {
System.out.println(Arrays.toString(a[i]));
}
for (int i = 0; i < a.length; i++) {
int sum = 0;
for (int j = 0; j < a[i].length; j++) {
sum += a[i][j];
}
total += sum;
System.out.println((i + 1) + "班级的总分为:" + sum);
}
System.out.println("总分为:" + total);
}
2.Arrrays类的说明和使用
java.util.Arrays类是java.util包提供的工具类
Arrays类提供操作数组的方法,如:排序查询
Arrays类的sort()方法:对数组进行升序排列
为什么学习多维数组?多维数组需要注意的几点。
三维及以上的数组很少使用
主要使用二维数组 从语法上Java支持多维数组
从内存分配原理的角度讲,只有一维数组
二维数组部分练习:
①已知有3个班级各5名学员,请使用 二维数组计算各个班级的总成绩
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a[][] = new int[3][5];
for (int i = 0; i < a.length; i++) {
System.out.println("-----------------第" + (i + 1) + "个班----------------");
for (int j = 0; j < a[i].length; j++) {
System.out.print("请输入第" + (j + 1) + "个学生的成绩:");
a[i][j] = sc.nextInt();
}
}
System.out.println("------------------成绩统计-------------------");
for (int i = 0; i < a.length; i++) {
int sum = 0;
for (int j = 0; j < a[i].length; j++) {
sum += a[i][j];
}
System.out.println(i + "班总成绩为:" + sum);
}
}