我有许多不同的武器类别和敌人/玩家类别。他们都有一个共同的 y 变量,他们会更新。我如何根据那个 y 值对它们进行排序?它们都(希望)在一个数组列表中。在某处阅读我看到您可以添加一个参数,Collections.sort()
但我无法弄清楚如何使用许多类来做到这一点。
另外,在c#中是否有与动态列表等效的java?
您可以使用比较器,它使用的值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);
}
}
如果您的所有敌人/玩家类都有一个父类(类或接口),如果您正在制作它们的列表,听起来就像它们一样,您可以使用Collections.sort(List, Comparator)并放置某种getY
方法在您Comparator
可以使用的父类/接口中。