有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何正确定位网格坐标

我摄取了四个十进制坐标,类似于:33.829785,-84.3958,这样我可以在地图上画一个正方形。但是,有时坐标没有按正确的顺序传递,这会导致形成一个带有边远点的三角形。在研究这一点时,我研究了S.O.上的herehere。我还研究了JgraphJungGrappa;但是这些框架更适合于创建一个操作图,而不是评估它们。我还发现了下面的代码,该代码用于对一组四个整数点进行排序,但不适用于十进制度数,这是由于java所施加的限制。可比较的接口

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));
            }

共 (1) 个答案

  1. # 1 楼答案

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

    不要被compare的返回类型弄糊涂,它需要保持int。对int的所有其他引用都变为双引用。这可能会有帮助:Comparator with double type

    祝你好运