Salut tout le monde,
J'ai un ensemble d'objets dans une collection (Set).
Est-ce que je pourrais intervenir pour modifier certains attributs de ces objets là ?
Merci
Version imprimable
Salut tout le monde,
J'ai un ensemble d'objets dans une collection (Set).
Est-ce que je pourrais intervenir pour modifier certains attributs de ces objets là ?
Merci
Salut:
Utilises un Iterator pour accéder aux éléments d'un objet Set.
Salut:
Modifier des éléments d'un objet Set peut briser la régle d'unicité des objets.
Donc il faut faire attention. 8O
Salut,
Et comment je peux accéder à l'objet à travers son Iterator?
Voilà j'ai le code suivant
Merci par avanceCode:
1
2
3
4
5
6 Set<Maclasse> MonSet; //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier. for (Iterator i=MonSet.iterator(); i.hasNext();){ ?????? }
Code:
1
2
3
4
5
6 Set<Maclasse> MonSet; //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier. for (Iterator i=MonSet.iterator(); i.hasNext();){ Object obj = i.next(); }
Salut,
Comme on est en Java 5.0 et que la collection est paramétré, autant conserver le type :
Ou mieux avec la boucle for étendus :Code:
1
2
3
4
5
6 Set<Maclasse> MonSet; //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier. for (Iterator<Maclasse> i=MonSet.iterator(); i.hasNext();){ Maclasse obj = i.next(); }
Code:
1
2
3 for (Maclasse obj : monSet) { // ... }
Maintenant, comme cela a été dit, si l'objet est modifié de telle manière que cela impacte les méthodes hashCode()/equals(), cela peut poser d'étranges problèmes...
a++
Salut:
Il est impérative de récréer l'objet Set après avoir modifier ses éléments pour ne pas avoir des éléments "égaux". (Je parle ici de l'égalité telle qu'elle définie par la méthode equals()).
:yaisse2:Code:
1
2
3
4
5
6
7
8
9
10 Set<MyClass> set = new HashSet<MyClass>(); // Peupler la collection // ... // Modifier quelques objets de la collections // ... // Recréer la collection (supprimer les doublons) set = new HashSet<MyClass>(set);