我正在摄取十进制度数的四个网格坐标,类似于:33.829785,-84.3958,这样我就可以在地图上绘制一个正方形。但是,有时坐标不会以正确的顺序传递,这会产生一个带有外围点的三角形。在研究这个问题时,我在S.O.上看了here和here。我还调查了Jgraph,Jung和Grappa;但是这些框架更适合创建操纵图,而不是评估它们。我还发现了以下代码,它用于排序一组四个整数点,但不是十进制度,因为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));
}
答案 0 :(得分:1)
一旦您将代码转换为与double
一起使用,您发布的代码就可以运行了。我不确定你为什么认为它不会。
不要对需要保留compare
的{{1}}的返回类型感到困惑。对int
的所有其他引用都变为双倍。这可能会有所帮助:Comparator with double type