Probleme: transferer les éléments d'une liste dans une matrice

ouided123 Messages postés 9 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 17 janvier 2017 - Modifié par KX le 7/01/2017 à 20:13
ouided123 Messages postés 9 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 17 janvier 2017 - 7 janv. 2017 à 20:50
Bonjour

Svp j'ai un probleme lors du transfert de mes elements de la liste dans une matrice appelée: tableau, proposez moi des solutions Svp.
int index=0;
               for(Character val : liste){
                        if(j<5){
                         tableau[i][j]=liste.get(index);
                         j++;
                                      }
                        else{i++;
                         if(j<5){
                          tableau[i][j]=val;
                             j++;
                         }

}

for(i=0;i<tableau.length;i++){
                       for(j=0;j<tableau[i].length;j++){

System.out.print(tableau[i][j]+"|");
                       }

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
7 janv. 2017 à 20:19
Bonjour,

Un exemple :

int a=3, b=4;
char[][] matrix = new char[a][b];

for (int i=0, n=Math.min(a*b, list.length); i<n; i++)
    matrix[i/b][i%b] = list.get(i);
0
ouided123 Messages postés 9 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 17 janvier 2017
7 janv. 2017 à 20:24
Merci pour la reponse KX, mais je m'excuse je n'ais pas compris ce que vous avez fais dans la boucle For!!!!
si vous pouvez me donnez un peu d'explications,
Merci
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
7 janv. 2017 à 20:39
J'ai fait comme ton
tableau[i][j]=val;
sauf qu'au lieu de gérer deux index i et j, je n'en utilise qu'un, celui de la liste.get(i).

Ensuite je place l'élément dans la matrice, à la ligne i/b (c'est à dire 0,0,0,0, 1,1,1,1, 2,2,2,2...) et à la colonne i%b (0,1,2,3, 0,1,2,3, 0,1,2,3...)

Pour que cela fonctionne il faut cependant s'assurer que l'on n'ai pas un i trop grand par rapport à la taille de la matrice. On prend donc la plus petite valeur entre a*b et list.length
0
ouided123 Messages postés 9 Date d'inscription vendredi 6 janvier 2017 Statut Membre Dernière intervention 17 janvier 2017 > KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024
7 janv. 2017 à 20:50
Ok, c'est clair maintenant, merci beaucoup
0
Rejoignez-nous