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 には明らかに要素 0 はありません。私が知らないのは、なぜ「player.addItem(m_area.m_items.get(i))」で例外をスローしなかったのですか? 何かが正しくありません。助けてください。
ありがとうございました