0

我有许多不同的武器类别和敌人/玩家类别。他们都有一个共同的 y 变量,他们会更新。我如何根据那个 y 值对它们进行排序?它们都(希望)在一个数组列表中。在某处阅读我看到您可以添加一个参数,Collections.sort()但我无法弄清楚如何使用许多类来做到这一点。

另外,在c#中是否有与动态列表等效的java?

4

2 回答 2

2

您可以使用比较器,它使用的值y作为排序值。如果您不想公开返回值的公共方法,y可以编写一个包私有的Comparator 类并使用该方法Collections.sort(list, MyComparator)

例如:

class MyComparator implements Comparator<Player> {

   @Override public int compare(Player p1, Player p2) {
       return Float.compare(p1.y, p2.y);
   }
}
于 2013-10-13T20:12:02.720 回答
2

如果您的所有敌人/玩家类都有一个父类(类或接口),如果您正在制作它们的列表,听起来就像它们一样,您可以使用Collections.sort(List, Comparator)并放置某种getY方法在您Comparator可以使用的父类/接口中。

于 2013-10-13T20:12:54.160 回答