Bonjour, je n'ai pas trop l'habitude de manipuler des listes en java.
Mon problème intervient avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    private List<ConnectedUser> users;
 
    ... (dans le constructeur)
    this.users = new ArrayList<ConnectedUser>();
    ...
 
    public void removeUser(String userName) {
        for(ConnectedUser u:users) {
            if(u.getUsername().equals(userName)) {
                users.remove(u);
            }
        }
    }
Ce code génère une
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Exception in thread "ServerThread"java.util.ConcurrentModificationException
Si j'ai bien compris, c'est parceque quand on itère sur la liste dans le for, on ne peut pas la modifier. Quelle est alors la bonne façon d'enlever un élément de la liste? Ma première idée et de faire une copie de la liste pour itérer, mais ça parait coûteux en temps... Y a-t'il une meilleur solution?