用Java写有一组学生的成绩是99,85,82,63,60,将他们按降序排列,保存在一个数组中。现需要增加一个学生的成绩,将它插入数组,并保持成绩降序排列。
时间: 2024-10-23 07:04:40 浏览: 25
Java 6.30 案例代码
在Java中,你可以创建一个`Integer`类型的数组来存储学生成绩,因为我们需要处理的是整数类型的数值。首先,你需要创建一个动态数组,然后对成绩进行降序排序,最后插入新成绩并保证数组仍然有序。以下是步骤:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
// 初始化学生成绩数组
Integer[] grades = {99, 85, 82, 63, 60};
// 对数组进行降序排序
Arrays.sort(grades, Collections.reverseOrder());
// 新增一个成绩
int newGrade = 95; // 指定新的分数
// 插入新成绩,这里假设新成绩会插入到最合理的位置(如果新成绩大于现有最大值,则放于末尾)
if (newGrade > grades[grades.length - 1]) {
grades = Arrays.copyOf(grades, grades.length + 1); // 扩展数组
grades[grades.length - 1] = newGrade;
} else {
// 使用二分查找法找到插入位置,这里简化了,实际应用需考虑边界条件
int index = Arrays.binarySearch(grades, newGrade);
if (index < 0) { // 如果未找到对应位置,插入到倒数第二个位置
index = -(index + 1);
}
System.arraycopy(grades, index, grades, index + 1, grades.length - index);
grades[index] = newGrade;
}
// 打印结果
for (int grade : grades) {
System.out.println(grade);
}
// 相关问题
阅读全文