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 :

Map dont les 2 valeurs sont récupérables ?


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut Map dont les 2 valeurs sont récupérables ?
    Bonsoir,

    j'ai besoin pour un programme d'une sorte de HashMap<Integer, String>, sauf qu'il faudrait que ca soit possible de pouvoir récupérer l'Integer (qui sera l'index) et le String qui sera la valeur, donc en fait au lieu d'avoir un couple clé - valeur, je voudrais un couple valeur - valeur. Le problème avec la HashMap, c'est qu'il est impossible de faire un get(String) qui va te retourner l'Integer de ce String.

    De plus il me faudrait quelque chose qui garde les éléments de la liste dans l'ordre dans lesquels je les ai entrés. Je demande beaucoup je sais

    Pour le moment, j'emploie ArrayList<Object[]> le premier élément du tableau est un Integer et le deuxième un Object[], mais c'est pas pratique du tout pour intervenir dessus, car je peut pas directement aller chercher quelque chose dedans puisqu'ils sont ordonnées dans l'ordre ou je les ai mis et je sais pas à quelle position est le couple que je veut chercher...

    Je sais pas si j'ai été très clair

    Merci d'avance

  2. #2
    Membre éprouvé
    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 : 40
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    salut,

    A la premiere lecture, pour l'association valeur <-> valeur, j'ai pensé faire un double map, donc dans l'un tu mets clé -> valeur et dans l'autre tu mets valeur -> clé...
    a la deuxieme lecture, j'ai capté le "dans l'ordre ou je les ai mis", et ca je sais pas si c'est possible, il y a bien l'interface SortedMap mais c'est une Map triée et non ordonnée dans l'ordre dans lequel tu les entre..

    J'espere avoir pu t'aider.

    mavina

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Oui ca m'aide un peu, mais si je dois faire 2 Map autant vaut mon ancienne technique, car en plus j'avais l'ordre de respecté.

    Mais je me suis aussi rendu compte d'un truc... C'est bien beau que la liste soit triée dans l'ordre mais faut aussi que je puisse y accéder dans l'ordre, donc dans le style de faire une boucle while(collection.hasNext) et collection.next, mais là ca commence vraiment à se compliquer... Me faudrait presque une triple association clé - valeur - valeur maintenant.

    Bon, plus qu'à espèrer qu'un grand pro du java ou quelqu'un avec une bonne capacité de discernement arrive à trouver quelque chose qui me sorte de là ^^

  4. #4
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    Pourquoi ne pas créer une classe qui contient ton integer et la string ? ainsi tu peux stocker dans une ArrayList... Ca peut etre plus simple a gerer que deux map ...

  5. #5
    Membre éprouvé Avatar de nin2
    Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Par défaut
    Pour garder l'ordre des insertions dans une Map, il est possible d'utiliser la classe d'implémentation LinkedHashMap. Ca peut donc être une solution, mais toujours avec deux Maps...

    Sinon, la solution de Scorpyosis me semble être une bonne idée.

  6. #6
    Membre expérimenté Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Par défaut
    La derniere solution que j'entervoie et qui n'est valable que si le nombre de couple est restreint ce serait de faire une double entrée a chaque fois..

    une fois dans le sens Integer->String et une fois dans le sens String->Integer.

    ca n'est interessant que si l'essentiel des acces se font par get et pas par iteration evidemment...

    dans le cas contraire, la solution de Scorpyosis reste la meilleure.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2014, 11h10
  2. Réponses: 13
    Dernier message: 07/06/2014, 09h36
  3. Réponses: 4
    Dernier message: 17/01/2010, 10h45
  4. Réponses: 2
    Dernier message: 04/10/2007, 13h42
  5. jointures dont les 2 membres sont des select
    Par rémi_tounul dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 26/04/2005, 14h56

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