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

Langage Java Discussion :

Problème avec le type LINKEDLIST et la méthode Contains()


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut Problème avec le type LINKEDLIST et la méthode Contains()
    Bonjour,

    je ne comprends pas pourquoi la méthode Contains() de la classe LinkedList ne fonctionne pas dans mon programme. Sachant que Mi et Mj sont des objets d'une classe ModuleTree et que NoeudNliste est une LinkedList qui contient des ModuleTree, voici une partie de mon code :

    System.out.println("Mi = "+Mi.toString()+" est dans la liste ? "+NoeudNliste.contains(Mi));
    System.out.println("Mj = "+Mj.toString()+" est dans la liste ? "+NoeudNliste.contains(Mj));
    System.out.println("la liste : "+NoeudNliste.toString());

    Voici l'affichage correspondant :

    Mi = (8 : s8) est dans la liste ? false
    Mj = (9 : s9) est dans la liste ? false
    la liste : [ (2 : s2), (5 : s5), (9 : s9), (3 : s3), (4 : s4), (8 : s8)]

    Merci beaucoup pour votre aide.

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedList.html#contains(java.lang.Object)
    Returns true if this list contains the specified element. More formally, returns true if and only if this list contains at least one element e such that (o==null ? e==null : o.equals(e)).

  3. #3
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut
    Euh... oui j'ai bien lu cette petite phrase dans la doc... mais justement, quitte à passer pour une imbécile, en quoi est - ce sencer résoudre mon problème ?

  4. #4
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut
    Merci, effectivement c'est peut être le problème d'égalité des moduletree, je vais regarder.

  5. #5
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut
    J'ai résolu le problème. Il s'agissait bien d'un problème au niveau de l'égalité de ModuleTree.
    (J'ai un peu contourné le problème en ré-écrivant une méthode contains() )

    Merci encore pour votre aide.

  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,

    Citation Envoyé par GDMINFO
    (J'ai un peu contourné le problème en ré-écrivant une méthode contains() )
    Il faudrait plutôt implémenter equals() et hashCode() sous peine de se retrouver avec le même problème avec d'autres méthodes des Collections...




    a++

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    il faudrait peut etre penser à rajouter les méthodes equals et hascode à ta classe ModuleTree... sinon lui il doit regarder les adresse en mémoire et si mj n'a pas la meme adresse en mémoire que ton élement de ta liste il te renvoi false,
    tandis que si tu redéfinis les deux méthodes, c'est elles qu'il utilisera dans la méthode contains.
    donc ton equals tu teste ce qui pour toi signifie que tes 2 éléments sont égaux... et pour le hashcode, ya plein de doc dessus...
    voila

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2005, 20h40
  2. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 17h33
  3. problème avec le type timestamp
    Par aline dans le forum Oracle
    Réponses: 6
    Dernier message: 21/02/2005, 10h05
  4. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 17h06
  5. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48

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