复制
收藏
提问
简洁
创建 Student 类 属性:id,name,score 存入一个数组中 可以根据成绩排序(升序,降序) 可以根据id排序(升序,降序) 需要使用函数式接口完成 compare(stu1,stu2)
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
学生类 Student 创建与排序
创建一个 Student
类,包含 id
、name
和 score
属性,并实现根据成绩和 id
进行排序的功能。
学生类属性定义
构造方法与 Getter/Setter
排序功能实现
- 排序方法:使用 Java 8 引入的函数式接口
Comparator
来实现根据成绩和id
进行排序的功能。 - 升序与降序:通过实现
compare
方法,可以灵活地进行升序或降序排序。
函数式接口使用
- Comparator 接口:创建一个实现了
Comparator<Student>
接口的匿名类或 lambda 表达式,用于定义排序逻辑。
示例代码
import java.util.Arrays;
import java.util.Comparator;
public class Student {
private int id;
private String name;
private float score;
// 构造方法、Getter 和 Setter 略
public static void main(String[] args) {
Student[] students = new Student[]{
// 初始化学生数组
};
// 根据成绩升序排序
Arrays.sort(students, Comparator.comparing(Student::getScore));
// 根据 id 降序排序
Arrays.sort(students, Comparator.comparing(Student::getId).reversed());
}
}
在上述代码中,Student::getScore
和 Student::getId
是方法引用,它们引用 Student
类的 getScore
和 getId
方法,用于提取比较的键值。reversed()
方法用于反转排序顺序,实现降序排序。10
你觉得结果怎么样?