数组
二、二维数组
1. 二维数组使用步骤
- 定义二维数组
格式:数据类型 数组名[][];
或数据类型[][] 数组名;
int scores[][];
int[][] scores;
- 为二维数组元素分配内存
格式:数据类型 数组名[][];
或数据类型[][] 数组名;
int scores[][];
scores = new int[3][3];
二维数组实际上是一个一维数组,这个一维数组的每一个元素又是一个一维数组。
- 二维数组初始化
int[][] scores = new int[][] {
{11, 12, 13},
{21, 22, 23},
{31, 32, 33}
};
或者
int[][] scores = {
{11, 12, 13},
{21, 22, 23},
{31, 32, 33}
}
- 二维数组的遍历
public class RankingOfGrades {
public static void main(String[] args) {
/*
多维数组排序
每个同学有三门课的成绩分别是数组的 1 2 3 个元素个班有 5个同学,按他们的总成绩输出每个同学的成绩
*/
int[][] scores = {
{78, 89, 93},
{88, 92, 89},
{79, 87, 88},
{92, 96, 99},
{94, 90, 87}
};
int[][] grades = new int[scores.length][2];
for (int i = 0; i < scores.length; i++) {
int sum = 0;
for (int j = 0; j < scores[i].length; j++) {
sum += scores[i][j];
}
grades[i][0] = sum;
grades[i][1] = i;
for (int i = 1; i < grades.length; i++) {
int index = i - 1;
int[] num = grades[i];
while (index >= 0 && num[0] > grades[index][0]) {
grades[index + 1] = grades[index];
index --;
}
grades[index + 1] = num;
}
for (int i = 0; i < grades.length; i++) {
System.out.println(Arrays.toString(scores[grades[i][1]]));
}
}
}
输出:
[92, 96, 99]
[94, 90, 87]
[88, 92, 89]
[78, 89, 93]
[79, 87, 88]