Liste de tableaux

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 19031 Statut Modérateur -
Bonjour, j'aimerai créer une liste qui contient dans chaque élément, 9 éléments. C'est à dire un tableau de 9 élément dans chaque élément de la liste.
Alors j'ai tenté des trucs du genre :
ArrayListe<Double[]> liste = new ArrayList<Double[]>();

liste[0].add(14);
liste[1].add(15);
..
..
..

Mais ça ne marche pas..
Pouvez-vous m'aider ?
Merci d'avance !

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    ArrayListe (avec une vilain E à la fin) n'existe pas, il faut absolument respecter le nom de chaque chose en Java.

    Ensuite, tu t'es emmêlé les pinceaux. Si ce que tu veux faire c'est
    liste[0].add(14)
    alors il te faut une
    List<Double>[] liste;
    , or tu as défini une
    List<Double[]>
    qui se manipule plutôt en faisant
    Double[] tab = {1,2,3}; liste.add(tab);
    .

    Remarque : il est généralement maladroit de mélanger tableaux et collections. Tu devrais plutôt essayer de faire soit un
    Double[][]
    soit une
    List<List<Double>>
    .
    0
  2. parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
     
    Oui c'est vrai que je m'emmêle pas mal à mon avis...
    En fait, j'ai deux boucles for imbriquées, et j'aimerais stocker chaque résultat dans la boucle pour ensuite les comparer. Alors j'ai ce code là(en utilisant un tableau) :

            for(int i=0;i<Max;i++)
            {
                for(int j=0;j<Max;j++)
                {
    
                    Mise[Indice1] = 0.25 + 0.01*j;
                    Mise[Indice3] = 0.25 + 0.01*i;
    
                    Mise[Indice2] = (Mise[Indice1] + Mise[Indice3])/(Cote[Indice2]-1);
                    somme = Mise[Indice1] + Mise[Indice2] + Mise[Indice3];
    
                    var = -somme + Mise[Indice3]*Cote[Indice3];
    
                    Gains[Indice1] = -somme + Cote[Indice1]*Mise[Indice1];
                    Gains[Indice2] = -somme + Cote[Indice2]*Mise[Indice2];
                    Gains[Indice3] = -somme + Cote[Indice3]*Mise[Indice3];
    
                    pourcentage[Indice1] = Gains[Indice1]*100/Maximum;
                    pourcentage[Indice2] = Gains[Indice2]*100/Maximum;
                    pourcentage[Indice3] = Gains[Indice3]*100/Maximum;
         
                                           
                        
                           Gain[i][j] = Gains[Indice1];
                        
    
    
                    }


    Mais cela ne marche pas trop. Surement parce que je ne comprends pas vraiment ce que je fais...
    Gain[][] est de taille [Max][Max], alors que je n'ai qu'une seule valeur à stocker (ici Gains[Indice1]) qui change avec i ET j, alors je ne sais pas trop comment écrire ça...
    Pourrais-je avoir un peu d'aide ?
    Merci d'avance !
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      "je ne comprends pas vraiment ce que je fais"
      C'est bien embêtant ça, alors à quoi sert ce code ? Par exemple à quoi servent Mise, Indice1,2,3, somme, Gains, Cote... tout ça tu les as mis là, pourquoi ?

      Un truc étonnant c'est tes Indice1,2,3. Ils ne changent jamais. Ça veut dire que ce que tu mets dans Mise[Indice1] , Gains[Indice1], pourcentage[Indice1], toutes ces valeurs seront effacées immédiatement après le tour de boucle suivant, elles ne servent donc à rien. La seule chose qui est modifiée c'est Gains[i][j], tout les autres calculs sont donc inutiles.

      Concrètement, si on enlève tout le code qui ne sert à rien, on peut réécrire le remplissage du tableau Gains de la manière manière suivante :

      double c1 = Cote[Indice1];
      double c2 = Cote[Indice2]-1;
      
      for(int i=0; i<Max; i++)
      for(int j=0; j<Max; j++)
      {
          double x1 = 0.25 + 0.01*j;
          double x3 = 0.25 + 0.01*i;
          double x2 = (x1 + x3) / c2;
      
          Gain[i][j] = c1*x1 - (x1 + x2 + x3);
      }

      Remarque : jusqu'ici je ne vois pas le rapport avec les listes...
      0