gpt4 book ai didi

Java比较器乱序排序一个条目

转载 作者:搜寻专家 更新时间:2023-11-01 01:20:58 25 4
gpt4 key购买 nike

我正在按一列的值对二维数组进行排序。第一列是国家代码,第二列是那个国家的选手名字,第三列是那个国家的分数:

skateArray[1][0] = "JPN";
skateArray[1][1] += "Yuzuru HANYU";
skateArray[1][2] = "13";

skateArray[2][0] = "USA";
skateArray[2][1] = "Jeremy ABBOTT "
skateArray[2][2] = "17";

我让它像这样工作:

     Arrays.sort(skateArray, new Comparator<String[]>() {

public int compare(final String[] entry1, final String[] entry2)
{

final String firstScore = entry1[2];
final String secondScore = entry2[2];
return secondScore.compareTo(firstScore);


}
});

for (final String[] string : skateArray) {
System.out.println(string[0] + " " + string[1] + " " + string[2]);
}

除了输出中的这个怪癖外,一切正常:

GBR   8.0
RUS 37.0
CAN 32.0
USA 27.0
JPN 24.0
ITA 23.0
CHN 20.0
FRA 20.0
GER 17.0
UKR 10.0

如您所见,首先显示得分最低的国家(GBR,8.0)。其余的按我想要的降序显示。我不知道为什么。

最佳答案

这是因为您将分数作为字符串进行比较,所以它们按字母顺序排序。

尝试将函数的最后一行替换为:

return new Double(secondScore).compareTo(new Double(score1));

关于Java比较器乱序排序一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592715/

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