我正在嘗試迭代兩個ArrayList:其中一個名爲「gegner」的是關於enemys的列表,另一個名爲「waende」是關於牆。在2維數組中迭代兩個ArrayLists
每當牆壁和敵人接觸時,兩者都應該失去一個耐久性/健康。 因爲它沒有在同一時間工作,我創建了一個新的方法,應該從列表中刪除死亡對象。
我的想法是:
public void removeDeathObjects() {
Wand tempW;
Gegner tempG;
for (Iterator<Gegner> it = gegner.iterator(); it.hasNext();) {
tempG = it.next();
for (Iterator<Wand> it2 = waende.iterator(); it2.hasNext();) {
tempW = it2.next();
if(tempW.isDestroyed()){
it2.remove();
}
if (tempG.isDeath()){
it.remove();
}
}
}
}
但程序「在線程異常‘拋出一個AWT-EventQueue的 - 0’的行it.remove()
java.lang.IllegalStateException」只要有至少兩堵牆,並且這些敵人不會完全喪生。
我哪裏失敗了?
如果你想,我可以給你整個代碼,但它很長._。
PS:抱歉壞英語
我不明白爲什麼你的兩個循環是嵌套的。難道你不想像'gegner.removeIf(g - > g.isDeath())'這樣的東西嗎? –