Java 如何将x的值从小到大排列?
改变 到Java 如何将x的值从小到大排列?,java,arrays,sorting,Java,Arrays,Sorting,改变 到 if(x[i]other.distanceFromOrigin()) 返回1; else if(this.distanceFromOrigin()
if(x[i]
这将改变排序顺序:在最初的情况下,如果i'th大于j'th,则交换两个值,现在,如果相反的情况成立,则交换它们:j'th大于i'th我更喜欢以下方式,因为它更干净、可读
if (x[i] < x[j]) {
类距离{
int x;
int-y;
@凌驾
公共整数比较对象(对象o){
其他距离=(距离)o;
if(this.distanceFromOrigin()>other.distanceFromOrigin())
返回1;
else if(this.distanceFromOrigin()
}
现在创建一个数组/距离列表,并使用Collections.sort获得所需的顺序。为什么一个基元数组同时存储x和y坐标
public static int[] swapInt (int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
return a;
}
if (x[i] > x[j]) {
if (x[i] < x[j]) {
class Distance implements Comparable{
int x;
int y;
@Override
public int compareTo(Object o) {
Distance other=(Distance)o;
if(this.distanceFromOrigin() > other.distanceFromOrigin())
return 1;
else if(this.distanceFromOrigin() < other.distanceFromOrigin())
return -1;
else
return this.x - other.x;
}
int distanceFromOrigin(){
return x*x+y*y;
}