gpt4 book ai didi

Java:高分百分比列表

转载 作者:太空宇宙 更新时间:2023-11-04 13:11:54 24 4
gpt4 key购买 nike

我想创建一个包含值和名称的列表。该值是玩家获得的百分比,精确到两位小数(例如 0.94),而名称就是玩家的名字。

我有这个列表:

List<Highscore> highscore = new LinkedList<Highscore>(Arrays.asList());

高分包含:

String percent;
String name;

对此列表进行排序的最佳方式是什么,以便百分比最高的排在第一位,依此类推。我见过一些 Comparator 方法,但我根本不理解它们,它们对我不起作用。例如:

if (highscore.size() > 0) {
Collections.sort(highscore.size, new Comparator<Campaign>() {
@Override
public int compare(final Campaign object1, final Campaign object2) {
return object1.getName().compareTo(object2.getName());
}
} );
}

最佳答案

将它们存储在 TreeSet 中,并使对象Comparable,首先使用高分进行比较,然后命名第二个。 (或者在 TreeSet 上使用自定义的 Comparator 来执行相同的操作)。这将使它们处于永久排序的集合中。

否则,您的示例是正确的,除了您使用的Comparator,它查看的是名称而不是分数。

将百分比存储为整数(或 float )而不是字符串将使这变得更容易。

无论你做什么,你都需要一个看起来像这样的Comparator:

new Comparator<Campaign>() {
@Override
public int compare(final Campaign object1, final Campaign object2) {
int result = //Compare your scores here - however you store them will change this bit
if (result != 0) {
return result;
}
// If scores are equal then just return the result of a comparison by name
return object1.getName().compareTo(object2.getName());
}
}

需要进行姓名比较,否则集合中只会出现两个得分相同的人。

关于Java:高分百分比列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876137/

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