按属性对数组的对象进行排序,无需集合

问题描述 投票:0回答:1

我有很多学生。我的学生班级有一个名为 Score 的整数属性,我想按他们的分数对它们进行排序。我不想使用集合

我用过这个,但没用:

class sortByScore implements Comparator<Student> { public int compare(Student a, Student b) { return a.score - b.score; } }

我有这个错误: the error image

java arrays sorting object oop
1个回答
0
投票

您的学生对象之一是

null
。您的比较器不支持这一点。

最简单的修复方法,结合评论中已有的内容,是将比较器包装到

null
安全的比较器中。有两种选择:

  1. null
    学生先于非
    null
    学生:
    Comparator.nullsFirst(Comparator.comparingInt(Student::getScore))

  2. null
    学生在非
    null
    学生之后:
    Comparator.nullsLast(Comparator.comparingInt(Student::getScore))

当然可以选择实际阻止

null
学生出现在您的收藏或阵列中。

© www.soinside.com 2019 - 2024. All rights reserved.