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

Java Discussion :

Nom de variable


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut Nom de variable
    bonjour,
    je suis débutant donc la question peut parraitre idiote.
    Peut on créer des noms de variable à la volé grâce une boucle for => String essai+i="blabla";

    En gros je souhaite que map1 soit incrémenté selon un nombre définit qui peut être variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HashMap<String, String> map1 = new HashMap<String, String>();

    Merci
    cedric

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Le plus facile c'est d'utiliser un Map<String , Map<String, String>> et tu incrémentes seulement la clé du map conteneur. Tu auras un map du genre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    leMap.put("map"+index, new HashMap<String, String>());
    .

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut
    merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Euh... Ouais enfin si c'est juste un compteur incrémental qui différencie chaque entrée... Il vaut mieux juste les mettre dans une List :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List<Map<String, String>> maps = new ArrayList<>();
     
    maps.add(new HashMap<String, String>()); // insertion à l'index 0
    // et on la récupère avec
    Map<String, String> theFirstMap = maps.get(0);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Map<String, String> mapDetaildesDonnee = new HashMap<String, String>();
    						List<HashMap<String, String>> mapSociete = new ArrayList<HashMap<String, String>>();
    for(int i=0;i<jArray_ProEntreprise.length();i++){
    ...
    mapDetaildesDonnee.put("identificationSociete"+i, identiSocieteEntreprise[i]);
    									mapDetaildesDonnee.put("societe"+i, SocieteArray_Pro[i]);
    									mapDetaildesDonnee.put("standard"+i, TelArray_Pro[i]);
    									mapDetaildesDonnee.put("mailgeneral"+i, MailArray_Pro[i]);
    									mapSociete.add(i, (HashMap<String, String>) mapDetaildesDonnee);
    }
    Le résultat n'est pas celui que j'attends, le Map grossit au fur et à mesure en l'incluant dans tous les index de la List mapSociete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    06-05 07:49:47.301: I/System.out(628): 
    [{mailgeneral0=contact@richard.fr, standard0=02.99.49.02.00, mailgeneral1=, standard1=02.99.99.99.00, societe1=JNL Services, societe0=CHARPENTE Richard, identificationSociete0=CHARPENTERichard, identificationSociete1=JNLServices}, 
    {mailgeneral0=contact@richard.fr, standard0=02.99.49.02.00, mailgeneral1=, standard1=02.99.99.99.00, societe1=JNL Services, societe0=CHARPENTE Richard, identificationSociete0=CHARPENTERichard, identificationSociete1=JNLServices}]
    comment pont t'on avoir un résultat du type :
    [{mailgeneral0=contact@richard.fr, standard0=02.99.49.02.00, , societe0=CHARPENTE Richard, identificationSociete0=CHARPENTERichard},
    { mailgeneral1=, standard1=02.99.99.99.00, societe1=JNL Services, identificationSociete1=JNLServices}]

    Cédric

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il faut créer une nouvelle Map à chaque fois, bien sûr. Donc à l'intérieur de la boucle, pas à l'extérieur.

    Et puis, ce n'est pas malin d'utiliser une Map pour ça.
    Il vaudrait mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Details {
      private String identificationSociete;
      private String societe;
      private String standard;
      private String mailGeneral;
      /* et les getters et setters*/
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    List<Details> allDetails = new ArrayList<>();
    for(int i=0;i<jArray_ProEntreprise.length();i++){
      Details details = new Details();
      details.setIdentificationSociete(identiSocieteEntreprise[i]);
      details.setSociete(SocieteArray_Pro[i]);
      /* et le reste */
      allDetails.add(details);
    }
    Tu n'aurais eu aucun mal à le faire tout seul si tu étais parti là-dessus dès le début.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [VB.Net] Créer dynamiquement un nom de variable
    Par chuck_m dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2005, 15h08
  2. Nom de variable dans une autre variable
    Par lsdInside dans le forum Linux
    Réponses: 5
    Dernier message: 04/12/2004, 19h36
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Nom de variable
    Par lilia dans le forum Flash
    Réponses: 4
    Dernier message: 07/08/2004, 13h11
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

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