我有很多学生。我的学生班级有一个名为 Score 的整数属性,我想按他们的分数对它们进行排序。我不想使用集合
我用过这个,但没用:
class sortByScore implements Comparator<Student> { public int compare(Student a, Student b) { return a.score - b.score; } }
您的学生对象之一是
null
。您的比较器不支持这一点。
最简单的修复方法,结合评论中已有的内容,是将比较器包装到
null
安全的比较器中。有两种选择:
null
学生先于非null
学生:Comparator.nullsFirst(Comparator.comparingInt(Student::getScore))
null
学生在非 null
学生之后: Comparator.nullsLast(Comparator.comparingInt(Student::getScore))
当然可以选择实际阻止
null
学生出现在您的收藏或阵列中。