Sto creado un gioco simile a super mario dove ci sono dei blocchi che se ci salti sotto "sputano fuori" una bomba che se ci vai vicino il player e la bomba vengono eliminati dall'interfaccia grafica.
Quando c'è una sola bomba è tutto ok, quando ce ne sono 2 o più e il player collide anche con una sola bomba, in console mi compare questo errore:
Exception in thread "Thread" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodificatio n(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
at com.game.Handler.render(Handler.java:21)
at com.game.Game.render(Game.java:181)
at com.game.Game.run(Game.java:137)
at java.lang.Thread.run(Unknown Source)

Ecco il codice:
import java.awt.Graphics;
import java.util.LinkedList;

public class Handler {

public LinkedList<Entity> entity = new LinkedList<Entity>();

public void render(Graphics g){
for(Entity en : entity){
en.render(g);
}
}

public void addEntity(Entity en){
entity.add(en);
}

public void removeEntity(Entity en){
entity.remove(en);
}
}

import java.awt.Graphics

public class Player extends Entity{

public Player(int x, int y, int width, int height, Id id, Handler handler) {
super(x, y, width, height, id, handler);
}

@Override
public void render(Graphics g) {
for(Entity en : handler.entity){
if(en.getId() == Id.bomb){
if(getBounds().intersects(en.getBounds())){
en.die();
die();
}
}
}
}
}

Ho creato anche una classe Bomb che definisce l'immagine da diesgnare sullo schermo e una super classe astratta Entity che dichiara un metodo astratto public void abstract render(Graphics g); il metodo public Rectangle getBounds(){ return new Rectangle(x, y, width, height)}e il metodo public void die(){ handler.removeEntity(this)};