Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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 如何将x的值从小到大排列?_Java_Arrays_Sorting - Fatal编程技术网

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