gpt4 book ai didi

java - (Java) 如何对对象数组进行排序,并断开两个对象之间的联系?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:25:34 24 4
gpt4 key购买 nike

假设我有一个对象 - TeamTeam 有三个字段,winslossesdraws

如果我有几个对象说 Team1Team2Team3,其中 Team1 有 3 场胜利, 2负1平,Team23胜3负,Team32胜3负1平

将所有三个团队放在一个数组中。

我正在尝试排序(我知道该怎么做.. 实现 Comparable,覆盖 compareTo() 使用 Array.sort)他们按胜场排序,如果两支球队的胜场相同,我想按失利对他们进行排序(最终将添加第三个字段以进一步打破平局)。

我应该编写自己的排序方法吗?有人可以指出我正确的方向吗,因为我不知道该去哪里。

最佳答案

与 Ben 的回答类似,但有一点不同,为了清楚起见,我经常使用以下模式。这是一个Comparator,但Comparable 的代码类似。

Comparator<Team> myComparator = new Comparator() {
@Override
public int compare(Team t1, Team t2) {
int result = t1.getWins() - t2.getWins();
if (result == 0)
result = t2.getLosses() - t1.getLosses();
if (result == 0)
... more tests here

return result;
}

};

请注意,在极端情况下,取两个整数的差可能溢出,因此更稳健的变体将使用Integer.compare(t1.getWins() , t2.getWins())。但是,在这种情况下,您的球队不太可能有超过 2^31 场胜利或失败。 :-)

要使用它,去

Arrays.sort(myArrayOfTeams, myComparator);

关于java - (Java) 如何对对象数组进行排序,并断开两个对象之间的联系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029296/

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