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 :

Java, Set et comparaison d'objets


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Java, Set et comparaison d'objets
    Bonjour,

    J'aimerais savoir quelle méthode Java utilise-t-il pour comparer les objets d'un Set<Objet> lors de l'ajout (et ajouter ou non selon le résultat de la comparaison) ?

    Et donc, que faire dans les classes des objets voués à être comparés ?

    Merci.

  2. #2
    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,


    Les Set utilisent généralement la méthode d'égalité des objets, soit equals(), mis à part certaine implémentation qui peuvent utiliser des Comparable ou des Comparator...

    Le mieux est de se plonger dans la documentation de l'implémentation que tu utilises...

    a++

  3. #3
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Dans ce genre de cas le mieux est de se référer à la JavaDoc qui en l'occurrence te dit que les méthodes hashcode et equals doivent être convenablement implémentées.

    Edit: trop lent

  4. #4
    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
    Citation Envoyé par zekey Voir le message
    les méthodes hashcode et equals doivent être convenablement implémentées.
    Tiens j'avais oublié hashCode()
    Mais encore une fois cela dépend de l'implémentation... donc javadoc

    a++

  5. #5
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Tiens j'avais oublié hashCode()
    Mais encore une fois cela dépend de l'implémentation... donc javadoc

    a++
    Cela n'apporte rien au problème de notre ami mais je suis surpris d'une implémentation basée sur les comparateurs, parce que cela me semble hautement inefficace.
    Tu as une implémentation précise en tête?

  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
    Citation Envoyé par zekey Voir le message
    Tu as une implémentation précise en tête?
    Les SortedSet par exemple
    Pour conserver un ordre quelconque tu est bien obligé d'utiliser des comparaisons car equals() ne fournit pas assez d'info...

    Et je pense en particulier à TreeSet qui accepte un Comparator

    a++

  7. #7
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Oui ok j'avais compris implémentation comme implémentation d'IBM ou de BEA.

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

Discussions similaires

  1. [C# .NET2.0] Comparaison d'objets
    Par mow dans le forum C#
    Réponses: 2
    Dernier message: 27/07/2007, 11h26
  2. [Java] Jasper & FOP : comparaison des outils servant pour la génération de PDF
    Par sovop dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 13/06/2007, 09h46
  3. java et la liberation d'objets
    Par Clorish dans le forum Langage
    Réponses: 5
    Dernier message: 26/03/2007, 18h56
  4. Réponses: 21
    Dernier message: 04/05/2006, 11h09
  5. [Java] Héritage et flux d'Objet
    Par guejo dans le forum CORBA
    Réponses: 2
    Dernier message: 22/02/2005, 11h14

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