私は多くの異なる武器クラスと敵/プレイヤー クラスを持っています。それらはすべて、更新する共通の y 変数を持っています。その y 値に従ってそれらをソートするにはどうすればよいですか? それらはすべて(うまくいけば)配列リストにあります。どこかでパラメーターを追加できることがCollections.sort()
わかりましたが、多くのクラスでそれを行う方法がわかりませんでした。
また、C# の動的リストに相当する Java はありますか?
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);
}
}
すべての敵/プレイヤー クラスが単一の親 (クラスまたはインターフェイス) を持っている場合、それらの List を作成しているように聞こえますが、Collections.sort(List, Comparator)を使用して何らかのgetY
メソッドを配置できます。あなたComparator
が利用できる親クラス/インターフェースで。