2017-01-10 20 views
0

抽象的なゲームの移動リストをソートする必要があります。移動リストはint型の配列です。各移動には、配列内に9つの要素が必要です。そのうちの1つは、ソートするスコア値です。int配列に格納された複数要素レコードのソート

Javaはjava.util.Arrays.sort(int [])メソッドを持っていますが、これはリストの複数の要素の構造の移動によってどのように役立つのかわかりません。

ソートの速度が重要なので、私はバブルソートを書いたくありません。

Javaには、目的に合う高速ソート機能がありますか?すなわち、1つの要素をソート値として使用して、int配列の複数要素レコードをソートするために使用されますか?

+0

潜在的な重複:http://stackoverflow.com/questions/4907683/sort-a-two-dimensional-array-based-on-one-カラム – CollinD

+1

9つの 'int'プロパティを保持し、' Comparable'を '実装 'させる' Move'というオブジェクトを作りませんか?それで 'Move'オブジェクトを' List'に入れ、 'Collections.sort(あなたがあなたのリストと呼んでいるもの)'を実行すると、 – CraigR8806

+0

オブジェクトを使うことはありますが、私は大きなパフォーマンスヒットを言いました。このアプリケーションでは、ソート処理はできるだけ高速でなければなりません。 – user3396618

答えて

0

あなたはこのような何かを行うことができます:

List<Move> moves = new ArrayList<>(); 
//add all of your Move objects to moves list 
Collections.sort(moves); 

あなたList今のスコアに基づいてソートされます

Comparableを実装

public class Move implements Comparable{ 


     private int score,prop1,prop2;//... 

     public int compareTo(Move move) { 
      return this.score>move.score?1:this.score<move.score?-1:0; 
     } 
} 

は、あなたがそうのようCollectionMoveのオブジェクトを並べ替えることができます

関連する問題