Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;java.lang.IllegalArgumentException:比较方法违反了它的一般约定&引用;集合的错误。排序()_Java_Collections - Fatal编程技术网

&引用;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


请参阅此帖子:

请不要只发布链接答案。试着在回答中解释这个问题。