2016-09-16 17 views
1
private static ArrayList<Game> theWinnerIs(ArrayList<Game> gamer){ 
    ArrayList<Game> winner = new ArrayList<Game>(); 
    ArrayList<Integer> points = new ArrayList<Integer>(); 
    for(int i = 0; i<gamer.size(); i=i+1){ 
     int x = gamer.get(i).getPoints(); 
     winner.add(x); 
    } 

    return winner; 
} 

ArrayListゲーマーの要素が不明です。 私がしたいのは、ArrayListゲーマーのすべての要素をループさせて、getpoints();というメソッドを呼び出して得点を得ることです。次に、これらの要素のそれぞれのスコアを比較し、勝者のArrayListに最もスコアの高い要素を格納してから、 return winnerを格納します。 2つ以上の要素が最大のスコアを共有している場合、私はそれらを勝者のArraylistに保存します。したがって、私はArraylistを使用する理由は、私は多くの勝者を知っていないので。ArrayList要素の比較方法

私は要素を比較するif文を使用する必要があります知っています。しかし、私はそれらを比較し始める方法を知らない。どのように私はそれぞれの値を取得し、それを if - ステートメントに格納しますか?簡単にするために、要素の数が3であると言うことができます。

答えて

0

あなたは良いパフォーマンスを望むかどうかです。そうでない場合は、あなただけの並べ替えそのArrayListsort方法とカスタムつもりのポイントを比較することだComparatorを使用することができ、あなたの方法のbegginingでこれを試してみてください。この後

gamer.sort((p1, p2) -> p1.getPoints().compareTo(p2.getPoints())); 

、ゲーマー/選手(私はしないでください本当にあなたの命名を理解している)最高得点がリストの終わりにくるだろう。最高得点が1つしかないなら、彼は最後になるだろう。その後、リストから最後のものを抽出し、以前のものが同じスコアを持っているかどうかを確認し、停止している場合はそれを追加して、彼を追加してください。

また、 pointsあなたのコードにリストは必要ありませんが、あなたが何かをするつもりはないなら、それを削除することを忘れないでください。

関連する問題