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 :

Remove et Maps, problème de suppression


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Par défaut Remove et Maps, problème de suppression
    Bonjour,

    J'ai créé une maps Annuaire qui possède en key un objet Point (qui possède comme attribut absisse et ordonnée) et en value un objet Relais.

    Le problème est que je n'arrive pas a supprimer d'objets de ma Maps puisqu'elle ne reconnait aucun objet en Key , je m'explique :

    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
     
     
    Annuaire annuaire = new Annuaire();
    //annuaire est une implémentation d'HashMap.
    Point p = new Point(1,1);
    Relais relais = new Relais(p);
     
    annuaire.put(p, relais);
     
    //cela modélise l'ajout dans la map.
     
    Point pointChoisiParlUtilisateur = new Point(1,1);
    annuaire.remove(pointChoisiParlUtilisateur);
     
    // Le problème est ici, je ne peux pas supprimer de ma Maps à partir d'un autre "Point"
    J'espère avoir été assez clair, merci d'avance.

  2. #2
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,

    si j'ai bien compris il te suffit de surcharger les méthodes equals et hashcode de ta classe Point

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Par défaut
    Je débute en JAVA
    tu peux m'en dire un peu plus sur ces méthodes?
    Pourquoi les surcharger? et comment s'y prendre? (pour equals je pense qu'il faut dire dans quel cas deux points sont égaux?)

  4. #4
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Par défaut
    Merci,

    j'ai donc fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public boolean equals(Point point){
    	boolean rep = false;
    	if(this.abscisse==point.get_abscisse() && this.ordonnee==point.get_ordonnee()){
    		rep=true;
    	}
     
    	return(rep);
     
    }
    est-il nécéssaire de surcharger hashcode?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 15
    Par défaut
    Je viens de générer le code grâce à eclipse pour le hashcode, tout marche à merveille!

    Merci à toi.

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 580
    Par défaut
    Je précise qu'il était obligatoire de surcharger hashCode(), car il s'agit d'un contrat pour le bon fonctionnement des classements par hachage :

    Si deux objets sont égaux, ils doivent absolument avoir le même hashCode. Par contre l'inverse n'est pas obligatoire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Mapping et relation : problème à la suppression
    Par Mr. Angus dans le forum Doctrine2
    Réponses: 2
    Dernier message: 28/07/2011, 05h44
  2. Réponses: 1
    Dernier message: 31/03/2010, 14h30
  3. [JTable] problème après suppression d'une ligne
    Par fredo3500 dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2005, 10h01
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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