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 :

treeMap / get


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut treeMap / get
    Bonjour,
    j'ai un objet treeMap dont la clé est un objet. Y a t il une instruction qui pemet de retrouver une occurence de la tree en fornissant une propriété qq de l'objet (à supposer que les valeurs de cette propriété ne sont pas redondantes) et non l'objet lui-même qui fait office de clé.

    merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 85
    Points : 81
    Points
    81
    Par défaut
    Salut,

    Non, de base il n'y a rien de la sorte, parcontre en utilisant la classe
    Comparator tu vas pouvoir faire des choses intéressantes ! Elle permet
    de mettre en place pour un objet une comparaison spécifique que tu
    codes toi même. Tu pourras ainsi maitriser les comparaisons ou les recherches.
    Tu peux aussi faire un objet intelligent qui prend en parametre un TreeMap,
    et le nom du champ que tu souhaites comparer dans les objets, en fesant
    de "introsception" (voir la classe Class) sur le champ, tu compares ensuite les valeurs ... etc...

    a+
    Xavier

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par xfacq
    Salut,

    Non, de base il n'y a rien de la sorte, parcontre en utilisant la classe
    Comparator tu vas pouvoir faire des choses intéressantes ! Elle permet
    de mettre en place pour un objet une comparaison spécifique que tu
    codes toi même. Tu pourras ainsi maitriser les comparaisons ou les recherches.
    Tu peux aussi faire un objet intelligent qui prend en parametre un TreeMap,
    et le nom du champ que tu souhaites comparer dans les objets, en fesant
    de "introsception" (voir la classe Class) sur le champ, tu compares ensuite les valeurs ... etc...

    a+
    Xavier
    Bonjour,
    merci Xavier d'avoir pris la peine de me répondre. J'ai trouvé une solution, mais peut être que c'est du bricolage. Lorsque je rempli ma treeMap de départ je rempli en même temps une autre liste. Cette dernière a pour clé la champ qui m'intresse et la valeur n'est rien d'autre que l'objet qui représente la clé de la treeMap pricipale. j'effectue 2 get imbriqués. Le 1er pour trouvé l'Objet/clé, et à partir ce cet objet je fais un autre get pour trouver l'occurrence qui m'intresse dans la treeMap principale.
    Ta solution m'éviterais de créer une 2ème treeMap, mais est-ce que tu penses que c'est plus rapide car j'ai au moins 9000 entregistrements.
    merci d'avance

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    fais une recherche sur le forum "hashcode()" adiGuba avait tres bien expliqué en quoi cette fonction est utile dans ce cas de figure

    mavina

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par keopsk
    Ta solution m'éviterais de créer une 2ème treeMap, mais est-ce que tu penses que c'est plus rapide car j'ai au moins 9000 entregistrements.
    merci d'avance
    Quand on utilise l'api de réflexion, il y a de l'overhead par rapport à un "accès direct". Après c'est à toi de voir l'impact sur tes perfoemances.

    Néanmoins, ta solution avec 2 maps est simple et raisonnable.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 85
    Points : 81
    Points
    81
    Par défaut
    Salut,

    Je crois que si tu peux faire en sorte que tes objet implémentent (en fait, ta
    classe) Comparable, tu pourras réécrire la méthode equals() ou tu géreras la
    comparaison et l'égalité des propriétés. C'est un truc du genre :

    int equals(object o)
    {
    if(this.myfield == o.myfield)
    blabla

    etc...
    }

    Ensuite quand tu appelles le get() du tree map, il y a automatique un appel
    a equal() et tout cela ce fait tout seul. Ca sera moins lourd que de faire de
    la reflexion dans une classe outils ou d'avoir 2 list.

    Voila, renseignes toi sur Comparable et ca va le faire !
    a+
    Xavier

Discussions similaires

  1. La commande apt-get
    Par GLDavid dans le forum Debian
    Réponses: 4
    Dernier message: 03/01/2004, 00h23
  2. gets() a la suite de scanf() -> probleme
    Par ickis dans le forum C
    Réponses: 12
    Dernier message: 14/12/2003, 20h24
  3. gets ,fgets
    Par Zazeglu dans le forum C
    Réponses: 2
    Dernier message: 19/09/2003, 18h24
  4. Créer les get et set des classes
    Par cameleon2002 dans le forum JBuilder
    Réponses: 3
    Dernier message: 17/09/2003, 21h03
  5. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25

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