Nesnelerim var İki kez Birden çok Ekleme listesi eklediğim Bullet, listeler aşağıda kısaca açıklanmıştır. Belirli işlemler yapıldıktan sonra iki listeden de bir mermi çıkarmak istiyorum. Bu yaklaşım doğru mu? Bir hata almaya devam ediyorum: java.util.ConcurrentModificationExceptionJava: Farklı nesnelerden aynı anda iki nesneyi kaldırmak
Alternatif olarak, bu şekilde nesneleri ele almak amacıyla ArrayList'den daha iyi bir çözüm düşünebilir misiniz?
//there are ArrayList<Bullet> bullets and ArrayList<Updatable> updatable, in the class
public void removeBullet(Bullet bullet) {
for (ListIterator<Bullet> bulletIterator = bullets.listIterator(); bulletIterator.hasNext();) {
Bullet tempBullet = bulletIterator.next();
if (tempBullet.equals(bullet)) {
for (ListIterator<Updatable> updatableIterator = updatable.listIterator(); updatableIterator.hasNext();) {
Updatable tempUpdatable = updatableIterator.next();
if (tempUpdatable.equals(bullet)) {
updatableIterator.remove();
bulletIterator.remove();
return;
}
}
}
}
}
DÜZENLEME: sorun kaynağı I farklı bir yerde tam olarak aynı zamanda, listeler birinde dolayısıyla hata bir yineleyici kullanılır oldu. Bu kod, güncellenebilir liste için iyi çalıştı.
Karşılaştırıcı sınıflarını da kullanabilirsiniz. –