java.lang.IndexOutOfBoundsException

Ich verwende ArrayList, um die 'Schatten' für jedes Rechteck in der Ebene zu speichern.

for(int n = 0; n < shadows.size(); ++n){
 g2d.fillPolygon(shadows.get(n)[0]);
 g2d.fillPolygon(shadows.get(n)[1]);
 g2d.fillPolygon(shadows.get(n)[2]);
 g2d.fillPolygon(shadows.get(n)[3]);
 g2d.fillPolygon(shadows.get(n)[4]);
 g2d.fillPolygon(shadows.get(n)[5]);
}

Ich bekomme einjava.lang.IndexOutOfBoundsException Fehler, der so aussieht:Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 42, Size: 79

Warum erhalte ich den Fehler, obwohl die Indexnummer nicht gleich oder größer als die Größe ist? Das Programm läuft immer noch wie gewohnt, aber ich möchte nicht, dass es Fehler enthält.

Ich habe auch eine Enchanced for-Schleife ausprobiert, aber dann bekomme ich einejava.util.ConcurrentModificationException stattdessen

for(Polygon[] polys : shadows){
 g2d.fillPolygon(polys[0]);
 g2d.fillPolygon(polys[1]);
 g2d.fillPolygon(polys[2]);
 g2d.fillPolygon(polys[3]);
 g2d.fillPolygon(polys[4]);
 g2d.fillPolygon(polys[5]);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage