学堂 学堂 学堂公众号手机端

要自定义排序规则,可以使用Comparator接口来实现

lewis 1年前 (2024-03-12) 阅读数 4 #技术

要自定义排序规则,可以使用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()); } } }

运行结果将会按照年龄从大到小的顺序输出学生信息。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门