java 分组排序_java升序排序代码

java 分组排序_java升序排序代码在 Java 中 你可以使用多种方法对学生的总分进行排序 以下是一些常见的方法 1 使用 Arrays sort 方法 javaint scores 80 90 70 60 70 80 90 80 70 int sum new int scores length 计算每个学生的总成绩并存储到一维数组中 for int i

在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 sortedStudents = new TreeSet<>(new Comparator () {

@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]));

}

以上代码示例展示了如何使用不同的方法对学生的总分进行排序。你可以根据具体需求选择合适的方法。如果你有任何其他

编程小号
上一篇 2026-03-20 13:16
下一篇 2026-03-20 13:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/70866.html