数组
二、二维数组
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]