IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Doublon au sein d'un HashSet


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 52
    Par défaut Doublon au sein d'un HashSet
    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 !!!

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par amAtunisian Voir le message
    je ne comprends pas comment il a eu insertion de doublons !!!
    C'est dans le code que tu ne nous as pas montré.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 52
    Par défaut
    Pour que le HashSet n'insère pas les doublons il faut implémenter equals et HashCode non? mais ça insère quand même

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Parce que c'est :

    et pas

    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 52
    Par défaut
    Merci beaucoup wax78

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Pour éviter ce problème il faut prendre l'habitude d'utiliser l'annotation @Override devant toutes les méthodes que l'on redéfinies.

    En cas d'erreur dans le nom ou le type des paramètres, cela engendrera une erreur de compilation...


    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/10/2014, 14h04
  2. [AC-2007] Recherche de doublons au sein de plusieurs tables liées
    Par Oliv'83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/10/2009, 17h18
  3. Ajout d'objet dans un HashSet (Doublon)
    Par gbinico dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/07/2008, 14h28
  4. [HashSet] C'est possible de mettre des doublons ! :-(
    Par Melchisedec dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/07/2007, 11h15
  5. HashSet, probleme de doublon et parcour
    Par fusion_sadam dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2007, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo