Afficher contenu hashSet dans java

webtech Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
 allo -
Bonjour,
je voudrais savoir comment parcourir puis afficher le contenu d'une hashset.

je voudrais savoir aussi comment en extraire un element.

merci.
A voir également:

3 réponses

Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Bonsoir,
Il faut que tu utilises un itérateur.
Exemple :
Hashset<TonObjet> hs = new Hashset<TonObjet>();
Iterator<TonObjet> it = hs.iterator();
while (it.hasNext()) {
 System.out.println(it.next());
}

Ceci aura pour effet d'appeler la méthode toString() de ton objet (celle héritée de la classe Object, ou alors celle que tu auras écrite pour surcharger celle de la classe Object).

Qu'entends-tu par "extraire un élément" ? Avec un hashset, tu peux uniquement tester si un objet appartient à ton ensemble ou non (et éventuellement le retirer de l'ensemble).
C'est difficile de parler d'extraction d'un élément dans un ensemble car tu n'as pas de notion d'ordre ici.

Cordialement,
3
allo
 
salut jai utilisé ton code pour afficher un objet (Vacances) mais ca affiche
Vacances@addbf1

en fait de veux afficher les atrribuuts

merci de maider
0
webtech Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   1
 
au faite, par exemple, j'ai une hashset qui contient des objet de type étudiant.
chaque étudiant à un numéro unique.

je veux créer une méthode qui supprime un étudiant suivant son numéro.

merci
1
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Bonsoir,
Hashset<Etudiant> hs = new Hashset<Etudiant>();
//remplissage de ton hashset
...
Iterator<Etudiant> it = hs.iterator();
while (it.hasNext()) {
 Etudiant etudiant = (Etudiant) it.next();
 if (id == etudiant.getId()) { //si id est un type primitif, sinon utiliser equals()
  hs.remove(etudiant);
  break();
 }
}

Comme tu vois, il faut parcourir tout ton ensemble pour supprimer l'élément (complexité en O(n)). Je ne sais pas si le choix du Hashset t'es imposé (et après ça dépend des autres utilisations que tu en fais), mais pour pouvoir supprimer un élément en temps constant (O(1)), il vaut mieux utiliser une Hashmap.

Cordialement,
0
webtech Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   1
 
j'aurais préféré opter pour autre choix que hashset mais malheureusement, on me l'a imposer et apprement comme vous le dite, dans mon cas, il aurait été plus sage d'utiliser hashmap.

Merci bien Marco!
0