我有许多不同的武器类和敌人/玩家类。它们都有一个共同的y变量,它们会更新。如何根据y值对它们进行排序?他们将(希望)都在数组列表中。在某个地方读到我看到你可以向Collections.sort()
添加一个参数,但是我无法弄清楚如何用很多类来完成它。
另外,是否有一个java等同于c#中的动态列表?
答案 0 :(得分:2)
您可以使用使用y
值作为排序值的比较器。如果您不想公开返回y
值的公共方法,则可以编写 package-private Comparator类并使用方法Collections.sort(list, MyComparator)
。
e.g:
class MyComparator implements Comparator<Player> {
@Override public int compare(Player p1, Player p2) {
return Float.compare(p1.y, p2.y);
}
}
答案 1 :(得分:2)
如果您的所有敌人/玩家类都有单个父级(类或接口),如果您正在制作它们的列表,则听起来就是这样;您可以使用Collections.sort(List, Comparator)并放置某种{您getY
可以使用的父类/接口中的{1}}方法。