用Java实现:有一组学员的成绩{99,85,82,63,60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序。
时间: 2024-09-26 12:06:54 浏览: 73
java 实现Comparable接口排序,升序、降序、倒叙
5星 · 资源好评率100%
在Java中,我们可以使用ArrayList和Collections.sort()函数来实现这个需求。首先,我们需要创建一个ArrayList存储学员的成绩,然后定义一个Comparator来比较分数并按照降序排序。接下来,我们将新的成绩插入到排序后的列表中,最后再调整顺序使其保持降序。
以下是一个简单的示例:
```java
import java.util.*;
class Student {
int score;
}
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student {score = 99});
students.add(new Student {score = 85});
students.add(new Student {score = 82});
students.add(new Student {score = 63});
students.add(new Student {score = 60});
// 按照score降序排序
Collections.sort(students, Comparator.comparingInt(Student::getScore).reversed());
System.out.println("Original scores (sorted descending):");
for (Student student : students) {
System.out.println(student.score);
}
// 插入新学员成绩
Student newNode = new Student {score = 78}; // 假设的新成绩
students.add(newNode);
// 调整数组以保持降序
Collections.sort(students.subList(students.indexOf(newNode), students.size()), Comparator.comparingInt(Student::getScore));
System.out.println("\nAfter inserting a new score:");
for (Student student : students) {
System.out.println(student.score);
}
}
}
```
在这个例子中,我们首先打印出原始的降序成绩,然后添加新学员成绩并再次排序。注意,插入后需要重新排序的部分是从包含新节点的索引开始到列表结尾。
阅读全文