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 :

[Collections]Tableaux d'objets uniques.


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut
    Non, je vais devoir comparer uniquement les résultats de toString().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //boucle for (indice i ) sur mon tableau Object[]
      //boucle for (indice j) sur la taille de mon DefaultListModel (model)
        if ( ! model.getElementAt(j).toString.equals(objets[i].toString()) )
          //ajout de mon objet dans le modèle
    Mais ça n'ira pas non plus à cause de ma doubel bloucle..
    pff comment faire..

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Je crois sérieusemeent que c'est du au fait que je recrée à chaque fois mes objets et donc qu'ils n'ont pas la même référence donc pas identiques..
    HashSet utilise le hashcode qui ne se base pas sur l'identite. Deux objets de meme valeur, meme d'identite differente, sont censes avoir le meme hashcode.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gfx
    sont censes avoir le meme hashcode.
    ben regarde quelques posts plus haut. le hashcode est différent..

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Non je ne vois pas ou tu prouves que le hashcode est different.

  5. #5
    Invité
    Invité(e)
    Par défaut
    ici :
    ajout de 'Objectif de diag 1' code = 3705235
    //recréation des listes
    ajout de 'Objectif de diag 1' code = 13783459
    ceci est les résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("ajout de '"+objets[i].toString()+"' code = "+objets[i].hashCode() );
    Ca ne vas pas ça ?

  6. #6
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Tes objets sont de quel type ? As-tu surcharge la methode equals ? Si oui, il faut surcharger hashcode() aussi.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Mes objets sont d'un type perso (monpcakage.Element)
    Je n'ai rien surchargé du tout..



    Enfin sinon en comparant avec objets[i].toString() ça fonctionne bien..

  8. #8
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Alors surcharge equals() et hashcode().

  9. #9
    Invité
    Invité(e)
    Par défaut
    (je ne surchargerais rien pour le moment car j'aimerais terminer cette partie pour aujourd'hui donc je me contenterais actuellement de ma comparaison avec toString() )

    Quel serait l'avantage de surcharger ces deux méthodes ?
    Les surcharger pour qu'elles fassent quoi de plus ?
    Je n'ai jamais vraiment vu l'intérêt de surcharger des méthodes de bases. Peux tu m'expliquer la finalité ?

    Merci

  10. #10
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Le HashSet (et HashMap, etc.) se base sur equals() et hashcode() pour faire son boulot. Tu peux tout betement les ecrire pour deleguer le travail a ta String. Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public int hashCode() {
      return toString().hashCode();
    }

  11. #11
    Invité
    Invité(e)
    Par défaut
    Ha oui ok, c'est juste pour éviter de mettre tout mon code de comparaison dans ma méthode fill() en fait

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/01/2011, 14h55
  2. Réponses: 5
    Dernier message: 05/11/2010, 17h39
  3. [Collections]Tableaux associatifs
    Par sheura dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 18/12/2005, 14h10
  4. Réponses: 3
    Dernier message: 24/10/2005, 10h07
  5. delete[] seulement pour des tableaux d'objets?
    Par Crisanar dans le forum C++
    Réponses: 7
    Dernier message: 22/10/2005, 19h50

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