import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ComparableTest {
public static void main(String[] args) {
Comparator
public int compare(Student s1, Student s2) {
//先排年龄
if(s1.age!=s2.age){
return s2.age-s1.age;
}
else{
//年龄相同则按姓名排序
if(!s1.name.equals(s2.name)){
return s2.name.compareTo(s1.name);
}
else{
//姓名也相同则按学号排序
return s2.id-s1.id;
}
}
}
};
Student stu1 = new Student (1,"zhangsan","male",28,"cs");
Student stu2 = new Student (2,"lisi","female",19,"cs");
Student stu3 = new Student (3,"wangwu","male",22,"cs");
Student stu4 = new Student (4,"zhaoliu","female",17,"cs");
Student stu5 = new Student (5,"jiaoming","male",22,"cs");
ArrayList
List.add(stu1);
List.add(stu2);
List.add(stu3);
List.add(stu4);
List.add(stu5);
//这里就会自动根据规则进行排序
Collections.sort(List,comparator);
display(List);
}
static void display(ArrayList
for(Student s:lst)
System.out.println(s);
}
}
class Student{
int age;
int id;
String gender;
String name;
String cs;
Student(int id,String name,String gender,int age,String cs){
this.age=age;
this.name=name;
this.gender=gender;
this.id=id;
this.cs=cs;
}
public String toString(){
return id+" "+name+" "+gender+" "+age+" "+cs;
}
}
2.添加 Comparable 接口,重写 compareTo 方法。然后你可以用 TreeSet 结构进行排序。它会自动排序。