gpt4 book ai didi

java - 使用两个值 x 和 y 对 java 中的数组进行自定义排序

转载 作者:行者123 更新时间:2023-11-30 06:19:58 25 4
gpt4 key购买 nike

我试图根据x值对数组进行排序,如果x值相同,则根据y进行排序。对打印值进行排序后,我得到一个异常,我通过重写比较器接口(interface)的比较方法来调用比较方法。

class coder
{
int x,y,index;
}
public class CoderRating implements Comparator<coder>{
public int compare(coder A,coder B)
{
if(A.x==B.x)
{
if(A.y<B.y)
return -1;
else if(A.y>B.y)
return 1;
else
return 0;
}

else if(A.x<B.x)
return -1;

else
return 1;
}

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
coder []c=new coder[n];

for(int i=0;i<n;i++)
{
c[i]=new coder();
c[i].x=sc.nextInt();
c[i].y=sc.nextInt();
c[i].index=i;
}
Arrays.sort(c);
for(int i=0;i<n;i++)
{
System.out.println(c[i].x + " "+c[i].y );
}
}

}

最佳答案

您调用了错误的sort重载,它应该是:

Arrays.sort(c, new CoderRating());

目前,您正在调用this sort方法而不是 this ,指定您的比较器因此出现问题。

关于java - 使用两个值 x 和 y 对 java 中的数组进行自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com