入れ子になった複数のforloopsを入れ子の入れ子に置き換えたいが、これが.next()を呼び出すときに問題になるかどうかを知りたい。例えば、Iterator attackIter = currentAttackers.iterator();と言って、3つのリストのそれぞれに対してイテレータをインスタンス化し、次にリストAとB、そしてBとCのネストされたforloopを実行すると、それはすでにリストBの終わりまで.next()を呼び出しているので、2番目のループの問題ですか?オリジナルのループは一種の次のようになります。あなたが明示的にIterator
Sを使用する必要はありませんしている場合複数のforループをリストイテレータに置き換える
for (int i = 0; i < listA.size(); i++) {
for (int j = 0; j < listB.size(); j++) {
collide(listA.get(i), listB.get(j));
}
}
for (int i = 0; i < listB.size(); i++) {
for (int j = 0; j < listC.size(); j++) {
collide(listB.get(i), listC.get(j));
}
}
'listB'は二回あなたがlistB''のための2回の反復子を作成する必要があります –