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

ouided123 9 Messages postés vendredi 6 janvier 2017Date d'inscription 17 janvier 2017 Dernière intervention - 7 janv. 2017 à 19:57 - Dernière réponse : ouided123 9 Messages postés vendredi 6 janvier 2017Date d'inscription 17 janvier 2017 Dernière intervention
- 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]+"|");
                       }
Afficher la suite 

4 réponses

Répondre au sujet
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 7 janv. 2017 à 20:19
0
Utile
3
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);
ouided123 9 Messages postés vendredi 6 janvier 2017Date d'inscription 17 janvier 2017 Dernière intervention - 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
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 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
ouided123 9 Messages postés vendredi 6 janvier 2017Date d'inscription 17 janvier 2017 Dernière intervention > KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 7 janv. 2017 à 20:50
Ok, c'est clair maintenant, merci beaucoup
Commenter la réponse de KX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.