要自定义排序规则,可以使用Comparator接口来实现
要自定义排序规则,可以使用Comparator接口来实现。Comparator接口包含一个compare方法,用于定义自定义排序规则。
下面是一个例子,假设有一个Student类,其中包含姓名和年龄属性,我们希望按照年龄从大到小的顺序对Student对象进行排序:
importjava.util.Comparator;
publicclassStudent{
privateStringname;
privateintage;
publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}
publicStringgetName(){
returnname;
}
publicintgetAge(){
returnage;
}
}
publicclassAgeComparatorimplementsComparator<Student>{
@Override
publicintcompare(Students1,Students2){
if(s1.getAge()<s2.getAge()){
return1;
}elseif(s1.getAge()>s2.getAge()){
return-1;
}else{
return0;
}
}
}
然后在使用时,可以将AgeComparator传入Collections.sort方法中,这样就可以按照自定义的排序规则对Student对象进行排序:
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassMain{
publicstaticvoidmain(String[]args){
List<Student>students=newArrayList<>();
students.add(newStudent("Alice",20));
students.add(newStudent("Bob",22));
students.add(newStudent("Charlie",18));
Collections.sort(students,newAgeComparator());
for(Studentstudent:students){
System.out.println(student.getName()+"-"+student.getAge());
}
}
}
运行结果将会按照年龄从大到小的顺序输出学生信息。
版权声明
本文仅代表作者观点,不代表博信信息网立场。