bonjour en faite dans mon programme je dois utiliser une HashSet car je dois avoir une collection qui me permetra de savoir le nombre d'item unique,
et j'ai pensé que la HashSet va me permettre ça puisqu'elle ne permet pas de doublon.
mon code est le suivant:
sachant que la methode extraire_ville(file.getName(),type) retourne un String chque fois unique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 tab_ville = new HashSet<StringBuilder>(); for (int i=0;i++;i<10) { String ville=extraire_ville(file.getName(),type); tab_ville.add(ville); }
normalement à la fin du traitement je dois avoir 10 elements dans la hashset,
malheureusement j'obtient qu'un seul string qui est le dernier ajouté.
à la fin tab_ville.getsize retourne 1 , ce qui est faux.
j'ai compris d'oû vient le probleme, le prebleme vient que la collection pensent que la variable ville est toujours la même et c'est vrai parceque la collection rajoute la reference et du coup même si l'objet referencé change la reference elle ne change pas ce qui induit à : la collection ecrase toujours la derniere valeur.
j'ai essayé avecmais le meme probleme , comment je peux creer une nouvelle reference sachnat que j'utilise l'identifiant ville et la methode qui retourne le String est toujours la mëme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String ville= new ville();
et voile le code de l'iterator:
il m'affiche juste le dernier ajouté malgré que toutes les operationde rajout retourne true.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { iterator<String> it = tab_ville.iterator(); while (it.hasNext()) { System.out.println("voila les villes trouvées "+it.next()); }
et je sais pas qui ne va pas
Partager