j'ai une classe Etudiant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class Etudiant {
 int id;
 String nom;
 String prenom;
public boolean equals(Object o){
        if (o instanceof Etudiant){
          return (          ((Etudiant)o).getNom().equals(this.getNom()  )                        );
    }
        return false;
    }
 
public int HashCode(){
        return 10;
    }
 
}
et une classe espHashSet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public class EspHashSet  {
 
    Set<Etudiant> set;
    public EspHashSet(){
       set=new HashSet<Etudiant>();
    }
public void addEtudiant(Etudiant e){
    set.add(e);
}
}
Dans le main , je peux insérer des doublons dans le HashSet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
   EspHashSet set=new EspHashSet();
    Etudiant x=new Etudiant("lll","kkk");
    set.addEtudiant(x);
    Etudiant p=new Etudiant("lll","kkk");
    set.addEtudiant(p);
    set.displayEtudiants();
output :
nom=lll prenom=kkk
nom=lll prenom=kkk

je ne comprends pas comment il a eu insertion de doublons !!!