[英]Overridden comparator and 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
所做的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.