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 :

Meilleur solution dans ces cas la?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut Meilleur solution dans ces cas la?
    Bonjour,
    Je voudrais savoir comment vous faites.
    C est assez facile mais je voudrais avoir la meilleure solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int[] p; // un tableau d entier ex: 0,1,0,2,0,2,3
    je veux mettre mon tableau dans un String d une maniere plus effective.
    Ce que je fais j itere mon tableau et je fais un append a mon String, il n y a pas autre chose plus rapide? c est couteux si c est un String, mais j utilise un StringBuilder en genral dans ce cas.

    Encore un autre cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<String> myList = new ArrayList<String>();
    je veux transformer myList en String[] newList; oui je peux faire myList.toArray() ca me retourne an Object[] mais est ce un cast (String[]) est propre? je ne sais pas pourquoi mais j aime pas ce genre de cast.

    Merci,

    H

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = p.toString();
    str = str.substring(1, str.length() - 1);
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.toArray(new String[0])

  3. #3
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    Citation Envoyé par natha Voir le message
    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = p.toString();
    str = str.substring(1, str.length() - 1);
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.toArray(new String[0])
    1- sachant que p est un tableau d entier en fesant p.toString() ca va me retourner l adresse"1I@3e25a" de p pas les valeurs du tableau.

    2 Merci pour le tips je ne savais pas ca.

  4. #4
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    La 1 ere questions:
    J ai un tableau d entier int[] p ex: 0,2,34, 56
    je veux mettre toutes les valeurs de ce tableau dans une String str.
    Je veux pas iterer toutes les valeur de mon tableau p et ajouter p[i] a str a chaque fois.
    le p.toString() retourne l adresse de p[] pas les valeurs du tableau en une string.
    c est un peu plus clair maintenant?

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jhaythem Voir le message
    c est un peu plus clair maintenant?
    Oui, et tu as deux solutions :

    • Utiliser Arrays.toString(), qui te renvoi quelque chose du style "[0, 2, 34, 56]".
    • Te coder une méthode qui parcourt le tableau et génère la chaine au format voulu, par exemple :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      	public static String toString(int[] array, String beforeFirst, String afterLast, String separator) {
      		StringBuilder buffer = new StringBuilder(beforeFirst);
      		if (array.length>0) {
      			buffer.append(array[0]);
      			for (int i=1; i<array.length; i++) {
      				buffer.append(separator);
      				buffer.append(array[i]);
      			}
      		}
      		buffer.append(afterLast);
      		return buffer.toString();
      	}
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      // Pour avoir le même résultat que Arrays.toString() :
      toString(array, "[", "]", ", ");


    a++

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Ah oui, j'ai oublié le Arrays.toString().

    Ca donne donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = Arrays.toString(p);
    str = str.substring(1, str.length() - 1);
    Solution du flemmard !

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par jhaythem Voir le message
    je veux transformer myList en String[] newList; oui je peux faire myList.toArray() ca me retourne an Object[] mais est ce un cast (String[]) est propre? je ne sais pas pourquoi mais j aime pas ce genre de cast.
    Un Object[] n'est pas forcément un String[], donc tu obtiendras une ClassCastException...

    Il faut utiliser toArray(T[]) pour obtenir le bon type, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] array = myList.toArray(new String[myList.size()]);
    Si le tableau passé en paramètre n'est pas de la bonne taille, un nouveau tableau sera créé (attention à bien synchroniser le tout en cas d'utilisation multithreadé de la liste).



    Pour la première question je n'ai pas vraiment compris le problème


    a++


    [edit] Grillé

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

Discussions similaires

  1. dans quel cas une jointure nested loops est meilleur que hash join?
    Par M_Dandouna dans le forum Administration
    Réponses: 5
    Dernier message: 08/09/2009, 15h46
  2. Meilleure solution pour des unit tests? (dans mon cas)
    Par nicdo77 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 19/08/2007, 19h32
  3. la meilleure solution pour centrer un div contenu dans un autre div ?
    Par Acid-dev dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/01/2007, 10h00
  4. [Java] Quel solution pour créer un fichier XML dans mon cas?
    Par petozak dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 23/08/2006, 12h10

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