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 :

[Info]Créer un tableau de String à partir d'autres String


Sujet :

Collection et Stream Java

  1. #1
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut [Info]Créer un tableau de String à partir d'autres String
    Bonjour

    J'ai plusieurs String qui ont des noms différents, genre res, tux, pic, qua, lit ...
    Je voudrais créer un tableau de String à partir de ces String.
    Je connais le nombre de String que j'ai. Donc je voudrais faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(int i=0 , String[] globals ; i<taille_connue ; i++)
     globals[i] = chaine ;
    Mais le problème, c'est qu'ici, "chaine" est un nom différent (res, tux, pic, qua, lit ...).

    J'ai regardé sur le site de SUN, il n'y a pas de constructeur qui me construise un tableau de String. L'idéal serait un truc dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] globals = new String(res,tux,pic,qua,lit);
    .
    Et j'aurais l'équivalence : globals[0] = res , globals[1] = tux ... et ainsi de suite.

    Nas'

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Tu connais par avance les valeurs à mettre dans ton tableau ???

  3. #3
    Membre confirmé Avatar de anitshka
    Inscrit en
    Mai 2004
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 624
    Points : 605
    Points
    605
    Par défaut
    Citation Envoyé par thibaut
    Tu connais par avance les valeurs à mettre dans ton tableau ???
    si oui je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] monTableau={res,tux,pic,qua,lit}
    devrait faire l'affaire
    Ni Dieu, ni maître, mais des frites bordel!

  4. #4
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Oui oui je connais à l'avance.
    Je suis trop con, j'ai pas pensé à faire comme anitshka
    Ca va me créer le tableau avec copie des chaines ou copie de l'adresse (référence) ? De préférence la première
    En tout cas merci et désolé pour cette question stupide. Je crois que je vais ajouter un petit [Delestage]

    Nas'

  5. #5
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par Nasky
    Ca va me créer le tableau avec copie des chaines ou copie de l'adresse (référence) ? De préférence la première ...
    Ca va te copier les références des chaînes !!!

  6. #6
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Uh je t'ai énervé avec ma question on dirait (!!!).
    Merci pour la précision.

    Nas'

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Absolument pas...

    Je suis pas sûr de ce que j'ai dis au-dessus.

  8. #8
    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 : 38
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] monTableau={new String(res),new String(tux),new String(pic),new String(qua),new String(lit)}
    par copie ca donne ca , comme ca t'es sur que c'est par copie, pas de mauvaise surprise, t'auras pas de référence
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  9. #9
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Pour info les String sont des objets non mutables.

  10. #10
    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 : 38
    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
    Citation Envoyé par thibaut
    Pour info les String sont des objets non mutables.
    Vi, mais si on le sait pas, on peut pas non plus savoir ce qu'est un objet mutable...
    Je suppose que cela veut dire qu'on ne peut pas passer la référence d'un string, on passe forcément par copie ? Ou a lors chuis totalement HS ?

    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Remarque:
    La classe StringBuffer, par contre, qui encapsule une chaine est mutable.
    Tout comme son vis a vis StringBuilder (Java 5 uniquement) qui est non threadsafe => plus rapide

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  12. #12
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class.

    Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. For example:

    String str = "abc";

    is equivalent to:

    char data[] = {'a', 'b', 'c'};
    String str = new String(data);
    crée une référence,

    et crée une autre référence et ne modifie par la référence courante.

    Secundo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String test = "test"; est équivalent a
    String test = new ("test");

  13. #13
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par mavina
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] monTableau={new String(res),new String(tux),new String(pic),new String(qua),new String(lit)}
    par copie ca donne ca , comme ca t'es sur que c'est par copie, pas de mauvaise surprise, t'auras pas de référence
    Faire ça ne change rien pour faire une copie de String ou non.

  14. #14
    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 : 38
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String[] s1=new String[3];
    String t1="un",t2="deux",t3="troix";
    s1[0]=t1;s1[1]=t2;s1[3]=t3;
    Le tableau affiché :
    "un deux trois"

    maintenant je fais ca :
    Le tableau affiché :
    "dix deux trois"
    non ?

    D'ou l'interet de passer par copie pour pas que l'objet référencé change en cours de route non ?
    Ou je suis encore totalement HS ?
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  15. #15
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Oui mais dans le cas tu passes toujours par copie:

    Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.

  16. #16
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par mavina
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String[] s1=new String[3];
    String t1="un",t2="deux",t3="troix";
    s1[0]=t1;s1[1]=t2;s1[3]=t3;
    Le tableau affiché :
    "un deux trois"

    maintenant je fais ca :
    Le tableau affiché :
    "dix deux trois"
    non ?

    D'ou l'interet de passer par copie pour pas que l'objet référencé change en cours de route non ?
    Ou je suis encore totalement HS ?
    Non ca ne fait pas ca du tout ..

    t1 est une variable contenant la reference sur l'objet string "un", lorsque tu fais t1 = "dix" tu changes la reference stocke dans t1 mais c'est tout ..

    Lorsque tu fais s1[0] = t1 tu recopie la reference sur l'objet string contenu dans t1 (a ce moment la "un") dans s1[0], change t1 apres ca ne changera pas cette reference de nouveau ..
    il faut refaire s1[0] = t1 de nouveau si tu veux que ca change ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  17. #17
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Mais par contre, faire :
    changera le contenu de t1, non ?

    Nas'

  18. #18
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Non je crois pas ...

  19. #19
    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 : 38
    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
    je me pourfend, pardonnez moi, chatiez moi, fouettez moi !
    euh ok je me tais

    merci pour ces explications, je ne ferais plus l'erreur !
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  20. #20
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Pour etre precis:

    Une variable contient une reference (une adresse) d'un objet.
    Un tableau d'objets est un tableau de references d'objets.

    Les variables ne sont pas les objets eux meme mais simplement un moyen d'y acceder.

    Lorsqu'on fait a = b, on change la reference de l'objet "pointé" par a, on ne change pas l'objet lui meme.

    Le seul moyen de changer un objet en java c'est d'acceder a ces variables d'instances si elles sont accessibles, soit d'utiliser des methodes de l'objet qui le modifie.

    Il n'est pas possible de referencer une variable en java, donc modifier la reference d'une variable n'affecte que celle ci et non pas tout les autres variables ou tableaux initialises avec la reference contenue dans cette variable a l'instant t.

    Un objet immutable est juste un objet qui n'a pas de methodes permettant de le modifier et qui n'a pas de variable d'instances accessibles..

    J'espere avoir ete plus clair.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Création d'un tableau en shell à partir d'un string
    Par jimmy4413 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 31/05/2011, 14h00
  2. [XL-2003] Comment créer un tableau sous Word à partir de VBA Excel
    Par datacell33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2011, 10h01
  3. [XL-2003] Créer un tableau croisé dynamique à partir de 2 tableaux
    Par Peanut dans le forum Excel
    Réponses: 5
    Dernier message: 01/12/2010, 10h27
  4. Réponses: 5
    Dernier message: 23/03/2010, 22h03
  5. Réponses: 6
    Dernier message: 01/05/2007, 23h16

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