do{
System.out.println("inside do");
for (int i = 0; i < i2; i++) {
String s2 = m_area.m_items.get(i).returnName();
if (s2.contains(s)) {
itemexist_check = true;
player.addItem(m_area.m_items.get(i));
m_area.m_items.remove(i);
} else {
//do nothing
}
}
itemexist_check = true;
}while(itemexist_check == false);
当这个 do 语句运行时,它会愉快地执行“player.addItem(m_area.m_items.get(i))”,但是当它到达“m_area.m_items.remove(i)”(m_items 是一个 LinkedList)时,它抛出“OutOfBoundsException:索引 1,大小 1”。通过打印LinkedList的大小,以及打印“i”的值,我确定在“m_area.m_items.remove(i)”之前,LinkedList的大小是2,而“ i" 为 0。我明白它为什么会抛出异常。LinkedList 中显然没有 Element 0。我不知道的是,为什么它没有在“player.addItem(m_area.m_items.get(i))”上抛出异常?这里有问题,请帮忙。
谢谢