使用Java集合排序时如何处理null

在Java中使用Collection.sort时,如果内部对象之一为null,应该返回什么?

例:

Collections.sort(list, new Comparator<MyBean>() {

public int compare(MyBean o1, MyBean o2) {

return o2.getDate().compareTo(o1.getDate());

}

});

可以说o2不是null,但o2.getDate()是,因此添加null验证时我应该返回1还是-1或0?

回答:

自然,这是您的选择。无论您编写什么逻辑,它都会定义排序规则。因此,“应该”在这里并不是正确的词。

如果您希望null出现在任何其他元素之前,则可以这样做

public int compare(MyBean o1, MyBean o2) {

if (o1.getDate() == null) {

return (o2.getDate() == null) ? 0 : -1;

}

if (o2.getDate() == null) {

return 1;

}

return o2.getDate().compareTo(o1.getDate());

}

以上是 使用Java集合排序时如何处理null 的全部内容, 来源链接: utcz.com/qa/420878.html

回到顶部