如何解决覆盖的比较器和 Collections.sort
Collections.sort(list,new Comparator<A>() {
@Override
public int compare(A a,A b) {
return -a.getId().compareTo(b.getId());
}
});
如果在比较器的返回值前面加一个减号,会不会对应reverseOrder方法?
Collections.sort(list,Collections.reverseOrder(new Comparator<A>() {
@Override
public int compare(A a,A b) {
return a.getId().compareTo(b.getId());
}
}));
我的意思是,它会一直正常工作吗?
解决方法
-Integer.MIN_VALUE
也是 Integer.MIN_VALUE
。
如果你能保证 compareTo
不会返回 Integer.MIN_VALUE
,它会同样工作(假设 compareTo
方法实现正确)。
否则,使用 reverseOrder
方法或在表达式中交换 a
和 b
(这就是 reverseOrder
所做的)会更安全。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。