0

配列内の高いスコア値をチェックし、他の値よりも高い場合はそれを配列に追加し、低い値をすべて下に移動するある種のループを作成しようとしています。

たとえば、配列が呼び出されInteger highScoreArray[12, 9, 8, 7]、その中に 4 つの値があります。と呼ばれるハイスコアが達成された対応する日付を保持する別の配列がありString highDateArray["12/5/11", "3/4/11", "4,4/12", "6/6/10"]ます。

新しい値と対応する日付を配列に追加するにはどうすればよいですか? つまり、新しい値が「10」で、日付が「5/29/12」の場合は?

sort コマンドを on で使用したくないhighScoreArray[]のは、対応する値がhighDateArray[]. その後、2 つの配列を 2 つの別々の線形レイアウトで 2 つの列のテキストに並べ替えたいと考えています。

for (int i = 0; i < highScoreArray.length; i++) 
{
    if(newHighScore>=highScoreArray[i])
    {
        // DO SOMETHING   
    }
}
4

2 に答える 2

3

hashmapを使用して値と対応する日付を保存するのはどうですか? 値を使用してそれらを並べ替えますか?

これらのリンクがお役に立てば幸いです

ハッシュマップをソートする方法

キーによる HashMap の並べ替え

マップを並べ替える方法

于 2012-05-30T02:48:04.497 に答える
1

オブジェクトを作成し、 Comparable を実装して簡単にすることができます。

public class HighScore implements Comparable {
    private int score;
    private Date date; // Or you can just use String

    //  Getters/Setters here
    ...

    public int compareTo(HighScore anotherScore) {
        //  Checking here
        //  Return 0 if this and anotherScore is same
        //  Return 1 if this greater than anotherScore
        //  Return -1 if this smaller than anotherScore
    }

}

だからあなたのループで

for (int i = 0; i < highScoreArray.length; i++) {
    HighScore highScore = highScoreArray[i];
    if (newHighScore.compareTo(highScore) > 0) {
        //  Do something
    }
}
于 2012-05-30T02:49:40.550 に答える