&引用;java.lang.IllegalArgumentException:比较方法违反了它的一般约定&引用;集合的错误。排序()
我尝试对一组数字进行排序,并获得以下代码:&引用;java.lang.IllegalArgumentException:比较方法违反了它的一般约定&引用;集合的错误。排序(),java,collections,Java,Collections,我尝试对一组数字进行排序,并获得以下代码: //sort possible targets based on distance Collections.sort(allPossibleTargets, new Comparator<NPD2>() { @Override public int compare(NPD2 o1, NPD2 o2) {
//sort possible targets based on distance
Collections.sort(allPossibleTargets, new Comparator<NPD2>() {
@Override
public int compare(NPD2 o1, NPD2 o2) {
if (o1 == null && o2 == null)
return 0;
if (o1 == null && o2 != null)
return 1;
if (o1 != null && o2 == null)
return -1;
return o1.getNpd().getDistance() < o2.getNpd().getDistance() ? -1 : 1;
}
});
//根据距离对可能的目标进行排序
排序(allPossibleTargets,new Comparator(){
@凌驾
公共整数比较(NPD2 o1,NPD2 o2){
如果(o1==null&&o2==null)
返回0;
如果(o1==null&&o2!=null)
返回1;
如果(o1!=null&&o2==null)
返回-1;
返回o1.getNpd().getDistance()
然而,我得到了上面的例外。请帮忙。谢谢。如果两个对象相等,则比较器不会返回0
请参阅此帖子:请不要只发布链接答案。试着在回答中解释这个问题。