public class Test17 {
public static void main(String[] args) {
Student2 student = new Student2();
List<Student2> list = new ArrayList<>();
list.add(new Student2("1", 20, 90.0F));
list.add(new Student2("2", 22, 90.0F));
list.add(new Student2("3", 20, 99.0F));
list.add(new Student2("4", 20, 95.0F));
Collections.sort(list, new Comparator<Student2>() {
@Override
public int compare(Student2 o1, Student2 o2) {
if (o1.getSorce() == o2.getSorce())
return o1.getAge() - o2.getAge();
return (int) (o2.getSorce() - o1.getSorce());
}
});
Collections.sort(list);
for (Student2 s : list)
System.out.println(s);
}
}
class Student2 implements Comparable<Student2> {
private String name;
private int age;
private float sorce;
public String getName() {
return name;
}
public Student2() {
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public float getSorce() {
return sorce;
}
public void setSorce(float sorce) {
this.sorce = sorce;
}
@Override
public String toString() {
return "Student2 [name=" + name + ", age=" + age + ", sorce=" + sorce + "]";
}
public Student2(String name, int age, float sorce) {
this.name = name;
this.age = age;
this.sorce = sorce;
}
@Override
public int compareTo(Student2 o) {
if (this.sorce == o.sorce)
return this.age - o.age;
return (int) (o.sorce - this.sorce);
}
}
分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序,如果成绩一样,那 在成绩排序的基础上按照年龄由小到大排序。
于 2022-04-16 10:09:29 首次发布

3355

被折叠的 条评论
为什么被折叠?



