Java错误:java.lang.IndexOutOfBoundsException:索引:1,大小:1

时间:2015-06-18 03:57:38

标签: java indexoutofboundsexception

这是我得到的错误,我不知道为什么。

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

我认为这是数组列表,但是当我尝试使用计数器+ 1时它也没有用。

2 个答案:

答案 0 :(得分:0)

使用您提供的部分代码,您似乎在diceData ArrayList中只有一个元素。您需要在ArrayList中包含与NUMBER_OF_SIDES一样多的元素,以便循环工作而不会抛出异常。

您可以打印diceData.size()来检查是否等于或大于NUMBER_OF_SIDES。

答案 1 :(得分:0)

您的以下代码会导致问题 -

   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数组列表为空。

所以要避免这种情况,请执行以下操作 -

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循环中初始化和递增计数器。因为我在你的代码中没有看到任何使用它。