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 :

Afficher les éléments d'un tableau dans une ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut Afficher les éléments d'un tableau dans une ArrayList
    Bonjour,
    Je bloque sur la possibilité d'afficher tous les éléments de mon ArrayList qui contient plusieurs tableau :

    Ou dis plus clairement, je souhaite afficher tous les éléments d'un tableau ( ou plusieurs tableau que j'en ai mis dans une ArrayList.
    En fait j'ai testé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList<int []> []chemin = new ArrayList[20]; // déclaration d'un ArraysList
    for(int i = 0; i < chemin.length; i++) {
    			 chemin[i] = new ArrayList();
    			}
     
    	int tab_temp [] = {5,6,7,9,6}; ;//  un tableau tab_temp 
    chemin[0].add(tab_temp); //  l'ajout d'un tableau tab_temp dans l'ArraysList a  l'indice 0.
    et enfin j'ai testé l'affichage de la contenu de ce tableau par ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for (j =0 ; j<chemin.length;j++)
    		{
    			for(i=0;i<chemin[j].size();i++){
    				for (int h=0; h<chemin[j].get(i).length;h++)
    				{
     
    					System.out.println(chemin[j].get(i).toString()); 
    				}
    }
    Merci pour vos conseils !

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    c'est bien de dire en quoi tu bloques, mais si tu commençais dire exactement ce qui te bloques ? Tu as expliqué ce qu'il fallait faire, c'est bien, mais faut dire aussi l'erreur que tu as si tu en as etc etc ...

    Cordialement,

  3. #3
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par paissad Voir le message
    Bonjour,
    c'est bien de dire en quoi tu bloques, mais si tu commençais dire exactement ce qui te bloques ? Tu as expliqué ce qu'il fallait faire, c'est bien, mais faut dire aussi l'erreur que tu as si tu en as etc etc ...

    Cordialement,
    Je m'excuse j'ai oublié de le mettre. En fait il m'affiche l'erreur suivante:
    [I@19821f
    [I@19821f
    [I@19821f
    [I@19821f
    [I@19821f
    [I@19821f
    [I@19821f
    ...

  4. #4
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Pour le moment, j'ai trouvé une solution mais Malheureusement incomplet
    en fait, j'ai tester ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int [] tab = chemin[j].get(i);
     
    	    	for (int s : tab)
    				{
    	        		System.out.print(s+" ");
    				}
    Il affiche les contenu des 3 tableau que j'ai dans cette ArraysList.
    Mais je trouve un autre problème: l'affichage est comme suit: une seul fois le premier tableau, 2 fois le deuxième tableau et 3 fois le troisième tableau.
    je ne trouve plus ou l'erreur ici
    Avez vous des idées s'il vous plait!!

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Donne le code complet.

  6. #6
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Voila le code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    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}}; // Matrice des opérations. 
    // chaque opération représenté par leur num job , num oper, num ressource, durée d’exécution et leur date de debut.
     
     
    // boucle while ici pour stoker tous les opérations ayant un date de début égale a zero
    while (k<9)
    		{
    		if (solution_initiale[k][4]== 0)
    		{
     
    			for (int t=0; t<5;t++)
    			{
    				tab_temp[t]= solution_initiale[k][t];
     
    			}		    
    			chemin[p].add(tab_temp);
     
    for ( j=0; j<chemin[j].length; j++)
    		{
    				for(i=0;i<chemin[j].size();i++)
    				{
     
    					 int [] tab = chemin[j].get(i);
    					 tab = chemin[j].get(i);
     
     
    				    	for (int s : tab)
    							{
    				        		System.out.print(s+" ");
    							}
                                          System.out.println("\n");
     
    					 date_debut = tab[3]+ tab[4];
    					 System.out.println("date de debut du prochaine operation "+date_debut);
     
     
    				}
        	}
     
     
    			p++;
     
    		}
    		k++;
     
    		}
    Il m'affiche :

    2 1 2 10 0

    1 1 1 12 0

    1 1 1 12 0

    3 1 3 10 0

    3 1 3 10 0

    3 1 3 10 0

    Et si je met l'affichage après le boucle while, il m'affiche seulement la dernière opération (3 1 3 10 0) ??

  7. #7
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,
    encore une fois, j'ai trouvé ou le problème exactement dans le code que j'ai donnée précèdement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    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}}; // Matrice des opérations. 
    // chaque opération représenté par leur num job , num oper, num ressource, durée d’exécution et leur date de debut.
     
     
    // boucle while ici pour stoker tous les opérations ayant un date de début égale a zero
    while (k<9)
    		{
    		if (solution_initiale[k][4]== 0)
    		{
     
    			for (int t=0; t<5;t++)
    			{
    				tab_temp[t]= solution_initiale[k][t];
     
    			}		    
    			chemin[p].add(tab_temp);
     
    for ( j=0; j<chemin[j].length; j++)
    		{
    				for(i=0;i<chemin[j].size();i++)
    				{
     
    					 int [] tab = chemin[j].get(i);
    					 tab = chemin[j].get(i);
     
     
    				    	for (int s : tab)
    							{
    				        		System.out.print(s+" ");
    							}
                                          System.out.println("\n");
     
    					 date_debut = tab[3]+ tab[4];
    					 System.out.println("date de debut du prochaine operation "+date_debut);
     
     
    				}
        	}
     
     
    			p++;
     
    		}
    		k++;
     
    		}
    Il est invalide pour mon problème c'est à dire, il sert a stoker tous les opérations dans une seule ArrayList <int[]> donc pour cela il m'afficher de cette manière :
    2 1 2 10 0 , 1 1 1 12 0 , 1 1 1 12 0 , 3 1 3 10 0 , 3 1 3 10 0 , 3 1 3 10 0

    d'ou j'ai changer autrement. j'ai utilisé un ArrayList d'ArrayList de type tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    ArrayList<ArrayList<int []>>  chemin_critique = new ArrayList<ArrayList<int []>>();
     
    		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];
     
    			}	
     
    			chemin_critique.add(new ArrayList());
    			ArrayList temp = chemin_critique.get(chemin_critique.size() -1) ;
    					temp.add(tab_temp);
    					taille = chemin_critique.size();
     
    		}
    		k++;
    		}
    		System.out.println("taille = "+taille);// ici il affiche 3 la taille 
    		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");
    		}
    Mais encore une autre fois, il m'affiche 3 fois la dernière opération trouvé. Je ne sais plus ou l'erreur exactement????

    S'il vous plait vos conseils !!

  8. #8
    Membre du Club
    Femme Profil pro
    Chercheuse en Informatique
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheuse en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    j'ai trouvé la solution correcte,
    En fait je ne re-initialise pas mon tableau a chaque iteration
    Voici le code correcte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     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<int []>();   
    			temp_princ.add(tab_temp) ;   
    			chemin_critique.add(temp_princ);   
    			taille = chemin_critique.size();   
     
    		}   
    		k++;   
    	}

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

Discussions similaires

  1. Afficher les élements d'un tableau dans une ListeView
    Par pink192 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 22/07/2013, 10h26
  2. [FPDF] Afficher les contenu de deux variables dans une cellule du tableau
    Par beaf05 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 11/04/2012, 15h14
  3. Réponses: 1
    Dernier message: 15/01/2011, 05h51
  4. Réponses: 14
    Dernier message: 26/08/2010, 04h21
  5. Afficher les élements d'un formulaire dans une autre fenetre
    Par BernardT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2005, 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