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 :

Parcours HashMap Key Ordre


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut Parcours HashMap Key Ordre
    Bonjour,

    J'ai un petit soucis concernant le parcours d'une HashMap en suivant l'ordre des clés. Je ne comprends pas pourquoi il ne prends pas l'ordre logique des clés.
    Voici mon code :

    > dans le JPF j'initialise ma hashMap avec des valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            while(listSeg.next())//tant que l'on a des résultats :
                {            
                //on récupère la segmentation
                String segmentation = this.getSegmentation(listSeg.getString(5));
                //on renseigne les map, la clé correspond à l'identifiant de modif > listSeg.getString(1)
                this.listeDeSegmentation.put(listSeg.getString(1),segmentation);
                }
    ici les valeurs sont bien dans l'ordre lorsrque je parcours la hashMap

    seulement une fois dans la JSP lorsque je souhaite afficher ces résultats tout est dans le désordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                <%
                //il faut itérer sur la liste de segmentation :          
                Set k = pf.listeDeSegmentation.keySet();        
                Iterator it = k.iterator();
                while(it.hasNext())
                    {
                        //récupération de la clé
                        Object cle = it.next();
                       %>
                       <%=cle.toString()%>
                    }
    Comment faire pour parcourir ma hashMap en prenant dans l'ordre des identifiants ?

    Merci;

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si tu veux que l'ordre d'insertion soit respecté, il faut utiliser une LinkedHashMap.

  3. #3
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Dans une HashMap les objets sont trié selon le hashcode de la clé correspondantes, c'est donc pour ca que mes éléments ne sont pas dans l'ordre.

    Je vais utiliser une TreeMap en espérant ne pas reproduire le problème ...s

  4. #4
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Ok j'essaye avec une LinkedHashMap, on va voir ce que ca donne.

    Je viens de tester avec un Tree Map et effectivement il me ranges les clé dans " l'ordre naturel " des String c'est à dire :
    1,10,11,12,13,14,15,16,17,18,19,2,20 ...

    Biensûr cette ordre ne me convient pas.
    Il fallait donc que les clé soient des Int et non des String pour que j'ai un ordre correct : 1,2,3,4,5,6,...

    Mais bizzarement la methode put des TreeMap naccepte pas un Int en premier parametre. pourquoi ?

    Pourtant cette methode prend 2 object en parametre, et un int c'est un object nan ?

    merci ...

  5. #5
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Sinon pour la LinkedHashMap ca fonctionne nikel merci

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par keub51 Voir le message
    Mais bizzarement la methode put des TreeMap naccepte pas un Int en premier parametre. pourquoi ?

    Pourtant cette methode prend 2 object en parametre, et un int c'est un object nan ?
    Il faut utiliser Integer à la place de int.

  7. #7
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Question Con : c'est quoi la subtile difference entre un Int et un Interger ?

  8. #8
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    int est un type primitif, qui permet d'effectuer des opérations simples et rapides.
    Integer est une classe Wrapper, qui contient une variable de type int et des méthodes facilitant la manipulation de cette variable (conversion en chaîne de caractères, conversion numérique).

    Integer est donc un Object et non int.

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

Discussions similaires

  1. pb de parcours HashMap
    Par thomas9501 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/12/2006, 16h46
  2. Problème de parcours des champs dans l'ordre.
    Par jyms2006 dans le forum Access
    Réponses: 1
    Dernier message: 19/04/2006, 11h08
  3. Double HashMap (Parcours dans les deux sens)
    Par Graffity dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/02/2006, 11h02
  4. [HashMap][io]perte de l'ordre alphabétique/clés de la map
    Par HNT dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 18/01/2006, 22h57
  5. Ordre de parcours de l'arbre...
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/12/2002, 18h41

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