java.lang.IndexOutOfBoundsException

Я использую ArrayList для хранениятени для каждого прямоугольника на уровне, но когда я перебираю подобное:

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]);
}

Я получаюjava.lang.IndexOutOfBoundsException ошибка, которая выглядит так:Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 42, Size: 79

Почему я получаю ошибку даже через индексный номер?т или больше, чем размер? Программа все еще работает как обычно, но я все еще неЯ не хочу, чтобы в ней были какие-либо ошибки.

Я также пробовал расширенный цикл, но потом я получаюjava.util.ConcurrentModificationException вместо

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]);
}

Ответы на вопрос(2)

Ваш ответ на вопрос