2012-05-30 2 views
0

Я пытаюсь создать какой-то цикл, который будет проверять значение большого балла в массиве, добавить его в массив, если он выше некоторых других значений, и переместить все нижние значения - вниз.android create high score check

Например, массив называется 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 на highScoreArray[], потому что тогда я потеряю информацию о том, где соответствующие значения, где в highDateArray[]. Я надеюсь, что сортировка двух массивов в двух столбцах текста в двух отдельных линейных макетах впоследствии, поэтому, пытаясь сохранить их в отдельности, я делаю это более трудным, чем это должно быть?

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

Вы пытались создать какой-то объект 'HighScore', который имеет в качестве полей в' int' для оценки и 'String' для дат? Не отвечает на ваш вопрос, но это может облегчить ситуацию; он сохранил бы партию в сочетании с правильной датой, и вы могли бы реализовать объект 'HighScore'' Comparable', чтобы вы могли сортировать массивы из них. – dshapiro

ответ

1

Вы можете создать объект и осуществить Сопоставимые, чтобы сделать его проще.

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 
    } 
}