Afficher les elements d'un tableau d'un ArrayList d'un ArrayList [Résolu]

Signaler
Messages postés
9
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
8 mai 2012
-
Messages postés
9
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
8 mai 2012
-
Bonsoir,

Je bloque sur la possibilité d'afficher tous les éléments de mon tableau qui se trouve dans un ArrayList d'un ArrayList. en fait, mon code est comme le suivant :
// la première partie: remplissage des tableau dans un Arraylist d'un Arraylist
int solution_initiale[][] = {{2,1,2,10,0},{1,1,1,12,0},{1,2,2,10,12},{3,1,3,10,0},{3,2,2,2,22},{1,3,3,4,22}, {3,3,2,2,24}, {2,2,3,7,10},{2,3,1,9,17}};
// cette matrice représente 9 opérations : chaque opération représente leur num job , num oper, num ressource , durée d’exécution et leur date de début

ArrayList> chemin_critique = new ArrayList>();
while (k<9)
{int t =0;
if (solution_initiale[k][4]== 0)
{

for ( t=0; t<5;t++)
{
tab_temp[t]= solution_initiale[k][t];

}

ArrayList temp_princ = new ArrayList();
temp_princ.add(tab_temp) ;
chemin_critique.add(temp_princ);
taille = chemin_critique.size();

}
k++;
}
// Deuxième partie: l'affichage
int tab[] = new int[5];

for (i=0; i<taille; i++)
{
ArrayList temp2 = chemin_critique.get(i);


for (j=0; j< temp2.size(); j++)
{
tab = chemin_critique.get(i).get(j);
}

System.out.print(Arrays.toString(tab));

System.out.println("\n");
}

Avec ce code il m'affiche seulement la dernière opération trouvé 3 fois !!

Vos conseils SVP!!

3 réponses

Messages postés
9
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
8 mai 2012

j'ai trouvé l'erreur ou exactement: en fait, je ne re-initialise pas mon tableau a chaque fois d'ou le code correct est le suivant :
while (k<9)   
{
int[] tab_temp;
int t =0;   
if (solution_initiale[k][4]== 0)   
{   



for ( t=0; t<5;t++)   
{   
tab_temp[t]= solution_initiale[k][t];   

}   

ArrayList temp_princ = new ArrayList();   
temp_princ.add(tab_temp) ;   
chemin_critique.add(temp_princ);   
taille = chemin_critique.size();   

}   
k++;   
} 

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
18
Bonjour
Pour la partie affichage, tu devrait plus avoir un code de ce genre (les System.out, dans la 2ème boucle).

for (i=0; i<taille; i++) { 
    ArrayList temp2 = chemin_critique.get(i); 
    for (j=0; j< temp2.size(); j++) { 
        tab = chemin_critique.get(i).get(j); 
        System.out.print(Arrays.toString(tab)); 
        System.out.println("\n"); 
    } 
} 
Messages postés
9
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
8 mai 2012

Non , de même : il affiche la dernière opération trouvée 3 fois