Ich versuche, die getScore()
Methode in meiner StudentScore
Klasse aufzurufen, die min und max über Elemente in einem ArrayList
innerhalb des printStat()
Verfahren unten dargestellt, um zu bestimmen . Ich bekomme eine ArrayIndexOutOfBoundException
. Was bedeutet das und wie kann ich das Problem beheben?Finden min in Arraylist Objekt kann nicht die Elemente in einem Arraylist vergleichen
public class ScoreCalculator{
private int[] scoreCounter;
ArrayList<StudentScore> scores ;
public ScoreCalculator(int maxScore) {
scoreCounter = new int[maxScore];
scores = new ArrayList<StudentScore>(maxScore);
}
public void printStat() {
System.out.println("Score Report for " + scores.size() + " Students ");
min = 0;
max = 0;
int j=0;
for (j = 0; j < scores.size(); j++) {
if (scores.get(j).getScore() < scores.get(j - 1).getScore()) {
min = scores.get(j).getScore();
}
if (scores.get(j).getScore() > scores.get(j - 1).getScore()) {
max = scores.get(j).getScore();
}
}
System.out.println(min);
System.out.println(max);
}
'j-1 'kann in Ihrem Code negativ sein, Indexbereich beträgt 0 bis size() -1 wird negativer Wert nicht erlaubt – haifzhan
Sie Zugriff auf Element' j-1'. Ich empfehle Ihnen, Ihre Liste zu ordnen, also ist das erste Element das 'min' und das letzte das' max'. –