0

我正在摄取四个十进制度的网格坐标,类似于:33.829785,-84.3958,这样我就可以在地图上画一个正方形。但是,有时坐标没有按正确的顺序传递,这会导致三角形带有离群点。在研究这一点时,我在这里这里都看过所以我也看过JgraphJungGrappa;但这些框架更适合创建操作图,而不是评估它们。由于 java.lang.comparable 接口施加的限制,我还找到了以下代码,它适用于对一组四个整数点进行排序,但不适用于十进制度。

int[][] array={{2,2},{1,1},{4,3},{2,1},{10,1}};
            Arrays.sort(array, new Comparator<int[]>(){
                    public int compare(int[] a, int[] b){
                            //assumes array length is 2
                            int x,y;
                            if (a[0]!=b[0]) {
                                    x=a[0];y=b[0];
                            }
                            else{
                                    x=a[1];y=b[1];
                            }
                            if (x<y) return -1;
                            else if (x==y) return 0;
                            else return +1;
                    }
            });
            for(int[] term: array){
                    System.out.println(Arrays.toString(term));
            }
4

1 回答 1

1

您发布的代码应该可以工作,一旦您将其转换为使用double. 我不知道你为什么认为它不会。

不要对compare需要保留的返回类型感到困惑int。所有其他引用int变为双重。这可能会有所帮助:具有双重类型的比较器

祝你好运!

于 2013-04-02T14:17:58.877 回答