gpt4 book ai didi

java - 对类的对象进行排序

转载 作者:行者123 更新时间:2023-11-30 07:43:56 26 4
gpt4 key购买 nike

我正在开发一个 Java 项目,该项目要求我实现函数 obtainRanking() : void 并具有以下描述:

Sort the players list by using the class method sort (List) from the Collections class, a method to sort the objects of a collection. For that, the object's class (Player in our case), should implement the interface "Comparable" and its method compareTo.

到目前为止,这是我实现 Comparable 接口(interface)的方式:

package modeloqytetet;

public interface Comparable {
public int compareTo(Object otroJugador);
}

在 Player 类中,这是我实现上述方法的方式:

@Override
public int compareTo(Object otherJugador) {
int otherCapital = ((Player) otherJugador).getCapital();

return otherCapital-getCapital();
}

现在,obtainRanking() : void 方法应该在其他类中实现,但我不知道该怎么做。我一直在尝试通过查看 Internet 上的一些示例来弄清楚,但似乎没有任何效果。

如有任何帮助,我们将不胜感激。

最佳答案

说明告诉您执行 java.lang.Comparable<T> , 不是你自己的 Comparable界面。

你应该这样做:

class Player implements Comparable<Player> {
@Override
public int compareTo(Player other) {
return Integer.compare(this.getCapital(), other.getCapital());
}

...
}

为什么你不应该简单地从一个整数中减去另一个整数来比较它们,参见 here .

然后,你可以实现obtainRankings像这样:

// this name is quite bad. I would call it sortPlayersCapitalInPlace or something like that
public void obtainRankings(List<Player> players) {
Collections.sort(players);
}

关于java - 对类的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914850/

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