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 :

Créer un tableau dynamique de double


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Juin 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 48
    Points : 32
    Points
    32
    Par défaut Créer un tableau dynamique de double
    Bonjour a tous,
    voilà j'aimerais comme le titre l'indique créer un double[] de façons dynamique c'est a dire qu'il se remplisse tout seul. J'ai besoin de faire sa car la méthode pour dessiner la courbe de mon graphique requière un double[].
    Pourriez vous m'aider svp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private double[] tabCadence;
        private ArrayList<Double> listeCadence = new ArrayList<Double>();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     listeCadence.add(listener.getCadence());
     
                        tabCadence = ArrayUtils.toPrimitive( listeCadence.toArray());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     this.amlxf.setyValues2(tabCadence);

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double[] tableau = taListe.toArray(new double[0]);

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Juin 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    Merci de ta réponse,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabCadence = listeCadence.toArray(new double[listeCadence.size()]);
    mais ce morceau de code ne marche pas

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    "Ne marche pas" ne veut rien dire : quelle erreur de compilation ? Quelle exception le cas échéant ?

    Le problème vient probablement du fait que le tableau est un tableau de primitifs double, et pas d'objets Double :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Double[] tabCadence = listeCadence.toArray(new Double[listeCadence.size()]);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je ne comprends pas ce qui ne te plaît pas dans le code que tu as fait toi-même. ArrayUtils.toPrimitive() te donne bel et bien le double[] que tu cherches.

    Est-ce que c'est que tu préfèrerais travailler dès le départ sur un double[] au lieu de le générer à partir d'une autre structure pour économiser du temps et de la place ? Dans ce cas, ce n'est pas possible. La taille d'un tableau n'est pas dynamique, c'est pour ça qu'on a des List. Quand on cherche à éviter le surcoût des List, le principe est de créer des tableaux de grande taille, et si ça reste trop petit, en refaire un autre de taille double en recopiant le précédent tableau dedans. Mais si on fait ça, ça veut dire que le tableau est plus grand que le nombre d'éléments qu'on voulait mettre dedans. Et donc, il faut que la bibliothèque qui lit le tableau, sache qu'elle ne doit pas le lire entièrement mais seulement jusqu'à l'index n qui contient la dernière donnée qu'on a mis dedans. Si elle ne peut pas le faire alors elle n'est pas capable d'éviter le surcoût des List.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Juin 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    oui effectivement l'erreur viens de la il veut pas une variable primitive.
    Mon problème que j'aimerais créer un tableau de double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private double[] tabCadence;
    qui ce remplis automatiquement je suis donc passer par une liste qui elle ce remplis bien de mes valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     private ArrayList<Double> listeCadence = new ArrayList<Double>();
    listeCadence.add(listener.getCadence());
    et ensuite j'aimerais convertir cette liste en double[] ou alors dépiler ma liste dans mon tableau de double[].

  7. #7
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    L'idéal serait que tu puisses te passer de transformer ta liste en Array, mais si tu n'as pas le choix tu peux toujours faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    double[] tableau = new double[taListe.size()];
    int i = 0;
    for (double d : taListe) {
    	tableau[i++] = d;
    }
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Double[] tableau = (Double[]) taListe.toArray();
    Eric

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Carrément pas, en fait -_-°.
    D'abord toArray() renvoie un tableau de classe composante Object, et donc ne peut pas être cast en Double.
    Ensuite un Double[] c'est pas la même chose qu'un double[], on passe pas l'un à la place de l'autre comme on veut. La gestion des primitifs est assez chiante en Java -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    ah oui, mince, une erreur de ma part.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Juin 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    Merci pour vos réponse cela fonctionne avec la boucle for.
    Sujet résolu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/10/2008, 20h19
  2. créer un tableau dynamique
    Par paolo2002 dans le forum Struts 1
    Réponses: 1
    Dernier message: 06/06/2008, 17h48
  3. [Tableaux] Créer un tableau dynamique
    Par Ptimoustik dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2008, 20h47
  4. Comment créer un tableau dynamique ?
    Par khokho dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2007, 08h40
  5. [MySQL] Créer un tableau dynamique
    Par Razgriz dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 27/02/2007, 22h52

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