使用java实现学生的自然排序是按年龄排序现在想要按照学生姓名排序。不能改动原有Student代码实现
可以使用Java提供的Comparator接口实现按照学生姓名排序,而不改动原有Student类的代码。
首先,定义一个实现Comparator接口的类,例如:
import java.util.Comparator;
public class StudentNameComparator implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
return s1.getName().compareTo(s2.getName());
}
}
这个类实现了Comparator接口,并覆盖了compare方法,该方法定义了按照学生姓名排序的规则。
然后,在排序时,可以使用这个类作为排序的依据,例如:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Student[] students = new Student[] {
new Student("Tom", 20),
new Student("Alice", 18),
new Student("Bob", 19)
};
Arrays.sort(students, new StudentNameComparator());
for (Student student : students) {
System.out.println(student.getName() + " " + student.getAge());
}
}
}
这个例子中,定义了一个StudentNameComparator类作为排序的依据,并将其传入Arrays.sort方法中进行排序。最终,按照学生姓名排序输出结果。
注意,这里的Student类并没有做任何修改,而是通过实现Comparator接口来实现了按照学生姓名排序的功能
原文地址: http://www.cveoy.top/t/topic/faip 著作权归作者所有。请勿转载和采集!