使用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