2015-06-18 2 views
-2

Это ошибка, которую я получаю, и я не знаю почему.Ошибка Java: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 

Я думал, что это список массивов, но когда я попробовал счетчик + 1, он тоже не работал.

+0

'размер списка' меньше, чем доступ к индексу, предположим, что' размер равен 1, индекс должен быть 0 только не 1' –

+0

вы отлаживали его? – DiSol

+2

Не могли бы вы предоставить исключение стека? В какой функции вы получаете это исключение? –

ответ

0

С частичным кодом, предоставленным вами, у вас есть только один элемент в массиве ArrayList diceData. Вы должны иметь столько элементов в ArrayList, сколько NUMBER_OF_SIDES, чтобы ваш цикл работал, не выбрасывая исключение.

Вы можете проверить это, распечатав diceData.size(), чтобы узнать, равно ли оно или больше NUMBER_OF_SIDES.

0

ваш код ниже вызывает problem--

for (int col= 0; col < NUMBER_OF_SIDES; col++) 
    { 
     int counter = 0; 
     //Add each of the 6 letters to the die ArrayList representing 
     //the die letters by calling method addLetter in class Die 
     die.addLetter(diceData.get(counter).toString()); 
     counter++; 
    } 

Причиной этого является то, что,

ваш diceData ArrayList ссылка только экземпляр, но он не содержал никакой ценности в нем. то есть список diceData пуст.

Так, чтобы избежать этой ситуации сделать following--

for (int col= 0; col < NUMBER_OF_SIDES; col++) 
    { 
     int counter = 0; 
     //Add each of the 6 letters to the die ArrayList representing 
     //the die letters by calling method addLetter in class Die 
     if(!diceData.isEmpty()) 
     { 
     die.addLetter(diceData.get(counter).toString()); 
     counter++; 
     } 
     } 

Кроме того, я до сих пор не могу понять, почему вы всегда инициализируется и увеличивающимся счетчиком в цикле выше FOOR.? Поскольку я не видел никакого использования этого в вашем коде.

+0

Согласно его коду, он инициализируется переданным значением в его конструкторе –

+0

diceData не пуст. Исключение показывает размер 1 и инициализируется массивом, который передается как параметр. –

+0

Это не исправляет. – codegeek123

Смежные вопросы