我需要 在我的班级学生
中实现静态方法public static Comparator<Student> getCompByName()
返回Student的新比较器对象,用于比较2个Students对象 通过属性'name'。
我创造了我认为正确的东西,但我不确定它是否会像上面给出的要求那样起作用。我对比较器非常新,并且很难与他们合作。
public static Comparator<Student> getCompByName()
{
Comparator comp = new Comparator<Student>(){
@Override
public int compare(Student s1, Student s2)
{
return Integer.compare(s1.name.length(), s2.name.length());
}
};
return comp;
}
仅仅从阅读上述要求,我不确定我应该比较'名称',无论是长度,如果它们是相等的等等。所以我投入了一个整数比较。对于任何人来说,如果我已经正确地完成了这项工作,那么它是否清楚了?如果没有,任何人都可以让我知道我需要做什么/改变吗?
答案 0 :(得分:3)
查看documentation,compare()
方法应该用于确定两个学生的顺序(在这里,您希望按字母顺序执行)。如果要检查是否相等,可以覆盖equals()
的{{1}}方法。对于字符串,您可以使用现有方法来比较学生的姓名字段。
Comparator
答案 1 :(得分:2)
假设您的'name'属性是一个字符串,您可以使用
直接比较名称s1.name.compareTo(s2.name)