自定义一个学生类,包含两个属性姓名,成绩。将几个学生对象存到TreeSet集合中去,实现按照成绩从高到低的顺序排序(使用自定义和自然排序两种)
时间: 2024-02-15 12:01:23 浏览: 146
好的,这里是自定义一个学生类,包含姓名和成绩两个属性的代码实现:
```java
public class Student implements Comparable<Student> {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
@Override
public int compareTo(Student o) {
return o.score - this.score; // 按照成绩从高到底排序
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
}
```
接下来,我们将几个学生对象存到 TreeSet 集合中,并实现按照成绩从高到低的顺序排序,代码如下所示:
```java
import java.util.*;
public class Test {
public static void main(String[] args) {
// 自定义排序
TreeSet<Student> students1 = new TreeSet<>();
students1.add(new Student("Tom", 90));
students1.add(new Student("Jack", 80));
students1.add(new Student("Lucy", 95));
students1.add(new Student("Alice", 85));
System.out.println("按照成绩从高到低的顺序排序(使用自定义排序):");
for (Student s : students1) {
System.out.println(s);
}
// 自然排序
TreeSet<Student> students2 = new TreeSet<>(Comparator.comparingInt(Student::getScore).reversed());
students2.add(new Student("Tom", 90));
students2.add(new Student("Jack", 80));
students2.add(new Student("Lucy", 95));
students2.add(new Student("Alice", 85));
System.out.println("按照成绩从高到低的顺序排序(使用自然排序):");
for (Student s : students2) {
System.out.println(s);
}
}
}
```
输出结果如下:
```
按照成绩从高到低的顺序排序(使用自定义排序):
Student{name='Lucy', score=95}
Student{name='Tom', score=90}
Student{name='Alice', score=85}
Student{name='Jack', score=80}
按照成绩从高到低的顺序排序(使用自然排序):
Student{name='Lucy', score=95}
Student{name='Tom', score=90}
Student{name='Alice', score=85}
Student{name='Jack', score=80}
```
可以看到,我们通过自定义和自然排序两种方式都成功地实现了按照成绩从高到低的顺序排序。
阅读全文
相关推荐


















