Java関連の問題があるようです。ソートの手助けJavaオブジェクトプログラミングでは、メソッドのオーバーライドとインターフェイスの概念が存在します。
ソートのための特別なインターフェイスはComparatorです。あなたはこのような方法で彼をインラインにすることができます。
Collections.sort(pawns ,new Comparator<Student>(){
public int compare(Pawn1 p1,Pawn2 p2){
// Write your logic here.
//ie.:
return p1.score - p2.score;
//or for different order
return p2.score - p1.score;
}});
このコンパレータの戻り値== 0は値が等しいことを意味します。 値が<の場合、0はp1がp2より大きいため、スワップします。
など、あなたのObjectクラス内で彼を置く:
Class Pawn implements Comparator {
private String name;
private Position[][] posXY;
private int value;
....
Pawn() { ... }
...
public int compare(Pawn1 p1,Pawn2 p2){
return p1.value- p2.value;
}
}
、あなたのコード内であなたがもともと意図したとおりに呼び出すことができます。
pawns.sort();
Pawn best = pawns.get(0);
、あなたが取得する必要が期待などArrayListからの最大値Pawn
上記のコードは単なるサンプルであり、チューニングが必要です。しかし、コレクションソートのためのComparatorロジックを実装していない限り、プログラマが定義したObjectをどのようにソートするか分かりません。外部リファレンスの
あなたの問題はJavaの配列であるならば、私は、あなたがそれらの多くの異なる操作のためのクラスjava.util.Arraysのメソッドを持っています(構文はPawn[]
ある)tutorialpoint
配列を複製して並べ替えることは、最も大きな値を選択するには非常に高価です。 – Tenfour04