0

私は多くの異なる武器クラスと敵/プレイヤー クラスを持っています。それらはすべて、更新する共通の y 変数を持っています。その y 値に従ってそれらをソートするにはどうすればよいですか? それらはすべて(うまくいけば)配列リストにあります。どこかでパラメーターを追加できることがCollections.sort()わかりましたが、多くのクラスでそれを行う方法がわかりませんでした。

また、C# の動的リストに相当する Java はありますか?

4

2 に答える 2

2

yの値をソート値として使用するコンパレータを使用できます。の値を返すパブリック メソッドを公開したくない場合は、パッケージ プライベートComparator クラスをy記述してメソッドを使用できます。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

すべての敵/プレイヤー クラスが単一の親 (クラスまたはインターフェイス) を持っている場合、それらの List を作成しているように聞こえますが、Collections.sort(List, Comparator)を使用して何らかのgetYメソッドを配置できます。あなたComparatorが利用できる親クラス/インターフェースで。

于 2013-10-13T20:12:54.160 に答える