在Java中,你可以使用多种方法对学生的总分进行排序。以下是一些常见的方法:
1. 使用`Arrays.sort`方法:
int[][] scores = { {80, 90, 70}, {60, 70, 80}, {90, 80, 70} };int[] sum = new int[scores.length];// 计算每个学生的总成绩并存储到一维数组中for (int i = 0; i < scores.length; i++) {int total = 0;for (int j = 0; j < scores[i].length; j++) {total += scores[i][j];}sum[i] = total;}// 对一维数组进行排序Arrays.sort(sum);// 输出排序后的结果for (int i = 0; i < sum.length; i++) {System.out.println("第 " + (i + 1) + " 名: 总成绩为 " + sum[i] + ",详细成绩为 " + Arrays.toString(scores[i]));}
2. 使用`TreeSet`和自定义比较器:

import java.util.TreeSet;import java.util.Comparator;class Student {String name;int math, english, chinese;int sum;Student(String name, int math, int english, int chinese) {this.name = name;this.math = math;this.english = english;this.chinese = chinese;this.sum = math + english + chinese;}}public class SortTotalScore {public static void main(String[] args) {Student[] students = new Student;students = new Student("三年二班", 93, 84, 54);students = new Student("三年二班", 77, 87, 41);students = new Student("三年二班", 54, 75, 41);// 使用TreeSet和自定义比较器进行排序TreeSetsortedStudents = new TreeSet<>(new Comparator () { @Overridepublic int compare(Student s1, Student s2) {if (s1.sum != s2.sum) {return Integer.compare(s2.sum, s1.sum);} else if (s1.math != s2.math) {return Integer.compare(s2.math, s1.math);} else if (s1.english != s2.english) {return Integer.compare(s2.english, s1.english);} else {return Integer.compare(s1.name.compareTo(s2.name));}}});sortedStudents.addAll(Arrays.asList(students));// 输出排序后的结果for (Student student : sortedStudents) {System.out.println(student);}}}
3. 使用`Arrays.binarySearch`方法:
int[][] scores = { {80, 90, 70}, {60, 70, 80}, {90, 80, 70} };int[] sum = new int[scores.length];// 计算每个学生的总成绩并存储到一维数组中for (int i = 0; i < scores.length; i++) {int total = 0;for (int j = 0; j < scores[i].length; j++) {total += scores[i][j];}sum[i] = total;}// 对一维数组进行排序Arrays.sort(sum);// 使用二分查找确定排名for (int i = 0; i < sum.length; i++) {int rank = scores.length - Arrays.binarySearch(sum, sum[i]);System.out.println("第 " + (rank + 1) + " 名: 总成绩为 " + sum[i] + ",详细成绩为 " + Arrays.toString(scores[i]));}
以上代码示例展示了如何使用不同的方法对学生的总分进行排序。你可以根据具体需求选择合适的方法。如果你有任何其他
