Java学生的自然排序是按年龄排序现在想要按照学生姓名排序。不能改动原有Student的代码
可以使用Java中的Comparator接口来实现按照学生姓名排序。
首先,在原有的Student类中新增一个getName()方法,用于返回学生的姓名。
然后,创建一个新的类NameComparator,实现Comparator接口,并重写compare()方法,按照学生姓名比较大小。
最后,调用Collections.sort()方法,将学生列表以NameComparator为比较器进行排序。
示例代码如下:
Student类:
public class Student {
private int age;
private String name;
public Student(int age, String name) {
this.age = age;
this.name = name;
}
// 新增getName()方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
NameComparator类:
import java.util.Comparator;
public class NameComparator implements Comparator<Student> {
@Override
public int compare(Student s1, Student s2) {
return s1.getName().compareTo(s2.getName());
}
}
使用示例:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student(20, "Bob"));
students.add(new Student(18, "Alice"));
students.add(new Student(22, "Charlie"));
// 按照学生姓名排序
Collections.sort(students, new NameComparator());
for (Student student : students) {
System.out.println(student);
}
}
}
输出结果:
Student{age=18, name='Alice'}
Student{age=20, name='Bob'}
Student{age=22, name='Charlie'}
``
原文地址: https://www.cveoy.top/t/topic/fa6R 著作权归作者所有。请勿转载和采集!