@Override
public int compareTo(Object t)
{
if(t instanceof Student)
{
Student s = (Student)t;
return (this.name.compareTo(s.name));
}
else
return -1;
}
这是我的 compareTo
方法实现,用于根据名称比较两个 Student
对象。是否可以根据多个字段(即姓名和年龄)比较两个这样的对象?
最佳答案
是的,但首先您应该键入要实现的 Comparable 接口(interface)。它应该是这样的:
public class Student implements Comparable<Student> {
private int age;
private String name;
@Override
public int compareTo(Student s) {
if (name.equals(s.name))
return age - s.age;
return name.compareTo(s.name));
}
}
注意类型化界面如何 Comparable<Student>
, 而不是原始类型 Comparable
, 无需转换。
关于java - 实现自定义 compareTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757805/