按公共值排序不同的对象

时间:2013-10-13 20:09:45

标签: java sorting object

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

另外,是否有一个java等同于c#中的动态列表?

2 个答案:

答案 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}}方法。