В конечном итоге i
может содержать значение PlayersNames.size()-1
.Я могу только предположить, что results
имеет тот же размер, что и PlayersNames
, а точнее PlayersNames.size() == results.size()
.
. Если это так, то в конечном итоге вы запрашиваете results.size()
-й элемент (выполнение results.get(i+1)
) в results
, что на единицу больше, чем удерживается results
, поэтому генерируется исключение IndexOutOfBoundsException.
Говоря более кратко, если результаты содержат N элементов, N -й элемент доступен с помощью индекса N-1
, но вы пытаетесь получить доступ к элементу с индексом N
, который не существует.
Попробуйте изменить внешний цикл на:
for (int i=0; i<PlayersNames.size()-1; i++) {
, чтобы предотвратить переполнение.
Кроме того, ваш внутренний цикл не используется, но если вы пытаетесь получить доступ к чему-либов одном из ваших массивов, используя первое значение j
, вы, вероятно, столкнетесь с той же проблемой по той же причине.