【发布时间】:2018-10-21 11:31:33
【问题描述】:
我正在开发一个 Java 项目,该项目要求我实现 obtainRanking() : void 函数,其描述如下:
使用 Collections 类中的类方法 sort (List) 对玩家列表进行排序,这是一种对集合对象进行排序的方法。为此,对象的类(本例中为 Player)应实现接口“Comparable”及其方法 compareTo。
到目前为止,这就是我实现接口 Comparable 的方式:
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 应该在其他类中实现,我不知道该怎么做。我一直试图通过在互联网上查看一些示例来弄清楚,但似乎没有任何效果。
任何帮助将不胜感激。
【问题讨论】:
-
任何名为
obtainRanking的方法都不应返回 void。不过,您可以将 Comparator 传递给您在其他类的方法中使用的sort方法。 -
也许不相关,但我认为他们的意思是他们希望你实现 Comparable 而不是你自己的
Comparable接口 -
@Sid 我认为该方法的目的是对 Player 类的现有 ArrayList 进行排序,因此返回应该是无效的。反正命名是不对的,但我没有选它:P
-
那么你可以直接用
obtainRanking方法排序,不是吗? -
嗨 d3vcho!您将需要这种方法:docs.oracle.com/javase/8/docs/api/java/util/… - 将您的玩家实例放入一个集合中,使用它对其进行排序,然后您想要的排名就是他们在排序列表中的位置。希望有帮助!
标签: java