在Java中,你可以使用多种方法对学生的总分进行排序。以下是一些常见的方法:
1. 使用`Arrays.sort`方法:
java
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`和自定义比较器:
java
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和自定义比较器进行排序
TreeSet
@Override
public 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`方法:
java
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]));
}
以上代码示例展示了如何使用不同的方法对学生的总分进行排序。你可以根据具体需求选择合适的方法。如果你有任何其他
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/70866.html