Comparable 用于对象的字段排序
使用
- 实现 Comparable 接口
- 重写 compareTo 方法
- 编写排序工具 Comparable getMax(Comparable c1,Comparable c2)
- 调用排序工具方法 getMax(s1, s2)
public class Student implements Comparable<Student> {
private String username;
private int age;
public Student(String username, int age) {
this.username = username;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Student o) {
return this.age - o.age;
}
@Override
public String toString() {
return "Student{" +
"username='" + username + '\'' +
", age=" + age +
'}';
}
}
class Test1{
public static <T> Comparable<T> getMax(Comparable<T> c1,Comparable<T> c2){
int result = c1.compareTo((T) c2);
// 如果result<0 c1就是小于c2
// 如果result>0 c1就是大于c2
// 如果result=0 c1就是等于c2
if (result>= 0 ){
return c1;
}else{
return c2;
}
}
public static void main(String[] args) {
Student s1 = new Student("张三", 2);
Student s2 = new Student("李四", 1);
Comparable<Student> max = getMax(s1, s2);
System.out.println(max);
}
}
输出
Student{username='张三', age=2}