Erreur : cannot find symbol : Fonction remove()

Résolu/Fermé
Romain_5376 Messages postés 1 Date d'inscription vendredi 15 juillet 2022 Statut Membre Dernière intervention 15 juillet 2022 - 15 juil. 2022 à 14:11
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 15 juil. 2022 à 16:28

Bonjour,

Je débute la programmation en Java et je viens de tomber sur une erreur que je ne parviens pas à régler.

Mon objectif est simple, je dois provoquer une erreur "ConcurrentModificationException". Pour ce faire, je veux modifier un tableau de strings pendant que j'itère dessus avec une boucle for.

Cependant, lorsque j'essaye de remove le 1er élément de ma liste de strings j'obtiens l'erreur suivante :


Windows / Firefox 102.0

Voici mon code :

Je peine à comprendre d'où vient mon erreur (de base je faisais un simple "tab.remove(element) mais en ligne les gens utilisent la fonction remove de cette manière là lorsqu'ils lui donnent en argument l'objet à remove lui même).

Quelqu'un pourrait il m'expliquer ce que je n'ai pas saisi quant à la fonction remove() et pourquoi il semble que je ne peux pas l'appliquer à une liste de Strings ?

Merci d'avance :)


Windows / Firefox 102.0

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
15 juil. 2022 à 16:28

Bonjour,

La méthode remove(Object) est défini dans l'interface Collection, donc tous les objets List, Set, etc. qui implémentent cette interface peuvent s'en servir, mais toi tu utilises un tableau, qui n'implémente pas l'interface et donc ne définit pas la méthode.

Avec un tableau tu n'arriveras pas à faire ce que tu veux, car sa taille est toujours fixe, on ne peut pas ajouter ou supprimer un élément d'un tableau.

Il faudrait donc plutôt que tu utilises une Collection, par exemple une List.


1