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

avec Java Discussion :

Manipuler des listes de listes (List<List<String>>)


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Manipuler des listes de listes (List<List<String>>)
    Bonjour,

    J'ai une liste de listes de string et celles-ci se composent elles-même de listes contenant chacune différents champs correspondant aux différentes informations sur un objet.

    Je cherche à comprendre comment parcourir ces listes de listes.

    Alors autant parcourir une liste simple ça va mais une liste de listes de string, j'ai du mal.

    Quelqu'un saurait-il m'expliquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonsoir,

    Si tu souhaites itérer sur tous les éléments, tu peux le faire de façon standard.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    List<List<String>> list = ...;
     
    for (List<String> l : list) {
        for (String s : l) {
            ...
        }
    }
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Oui oui je souhaite accéder à chacun des éléments de ces listes et récupérer l'information qu'ils contiennent.

    Cette liste est crée à partir de méthodes réalisées par nos professeurs qui lisent les informations sur des livres présentent dans un fichier tkt.


    Chaque sous-liste représente une info sur le livre ( auteur, titre, ...) et chaque liste un livre, le but est d'extraire l'information de cette "liste de listes" pour créer une liste d'objet (book) contenant les info ( dans cet objet book donc) qui sera plus simple à traiter!

    Alors pour ce qui est de créer cet nouvelle liste et compléter mes objets je pense pouvoir m'en sortir mais extraire l'info de ma " liste de listes" je patauge.

    Tu maintiens donc ta réponse au vue de mes éclaircissement ? Et la petite méthode pour retirer mon petit string alors ?

    Merci d'avance

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    ET bien si tu sais retirer une info d'une liste c'est la même chose pour une liste de liste. Je vois pas très bien ton problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (List<String> l : list) {
        for (List<String> l2 : list2) {
     
    }
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Et bien ce que j'ai peur avec ta proposition c'est que en faite tout ce que je reçois en paramètre c'est "<List<List<String>> toto" alors que toi tu utilises "list" et "list2". Donc la sous liste est extraite comment ?

    Ce qui me posait problème c'est justement çà, je n'ai que une liste( composée de liste oui oui on est d'accord) j'aimerais la parcourir avec deux ittérateurs mais il y a de quoi s'emmeler les pinceaux pour moi comme pour l'ordi qui ne va pas comprendre d’où vient cette sous-liste.

    Alors je ne doute pas de ta solution, je veux juste la comprendre.

    Merci de vos réponse en tout cas!

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Bonjour,

    La solution proposée par Nesmontou ne te convient pas ? Parce que d'après ce que j'ai compris, c'est typiquement ce que tu veux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    List<List<String>> maListeDeListes = ...;
     
    for (List<String> sousListe : maListeDeListes) {
         for (String elementDeLaSousListe : sousListe) {
              // J'ai acces a l'element en cours de la sous-liste courante
              elementDeLaSousListe
              // J'ai acces a la sous-liste courante
              sousListe
              // J'ai acces a la liste de listes initiale
              maListeDeListes
         }
    }
    Mako.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Si je comprends bien, en entrée ta liste de listes ressemble à ça:
    [livre1[auteur1,titre1,...],livre2[auteur2,titre2,...],...]

    Il te suffit de faire, comme indiqué précédemment:
    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
     
    public List<Book> traiterDonnees(List<List<String>> toto){
    // Créer une liste de book vide
    ...
     
    // Itérer sur les infos
    for(List<String> details : toto){
      // Créer un nouveau book
      ...
      for(String info : details){
        // Maj des infos du book
        ...
      }
     
      // Ajouter le nouveau book à la liste de book
      ...
    }
     
    // Retourner la liste de book
    ...
    }
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Si, elle me convient absolument, je voulais juste la comprendre!

    Mais pour le coup avec ta réponse je pense avoir compris.

    Je vous remercie

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Ben si tu as ton objet de ta list1, tu va dans ses variables pour avoir la list2. C'est la même chose, donc je ne vois pas ou cela coince.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Je ne sais pas trop comment insérer un segment de code ( peut-être pourriez vous me le dire pour une prochaine fois)

    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
    private List<Book> readBooks(List<List<String>> rawList) {
    		List<Book> booksList = new ArrayList<Book>();
     
     
    		Book book = new Book();
     
     
     
     
    		for (List<String> l : rawList) {
    		    for (String ligne : l) {
    		    	System.out.println ( ligne);
                    if ( ligne.startsWith("%Author"))book.addAuthor(ligne); 
                    if ( ligne.startsWith("%Title")) book.setTitle(ligne);
                    if ( ligne.startsWith("%Serie")) book.setSerie(ligne);
                    if ( ligne.startsWith("%Editor")) book.setEditor(ligne);
                    if ( ligne.startsWith("%Date"))
                    {
                        book.setPublicationDate(parseStringToDate(ligne));
                    }
                    if ( ligne.startsWith("%Reference")) book.setReference(ligne);
                    if (ligne.startsWith("%Copies")) book.setAvaibleCopy(Integer.parseInt(ligne));
     
    		    }
    		    booksList.add(book);
    		}
     
    		return booksList;
    	}
    Donc en gros je parcours la liste de liste je regarde à quoi correspond le string extrait et le place ou il faut dans ma nouvelle liste de book.

    Seulement que je veux accéder au contenu de ma booksList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(booksList.get(0));
    il n'aime pas trop et me dis

    "Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0"
    en gros la booksList est vide.

    Je ne comprend pas

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par qtnegg Voir le message
    Je ne sais pas trop comment insérer un segment de code ( peut-être pourriez vous me le dire pour une prochaine fois)
    C'est le bouton "dièse" lorsque tu rédiges un message (ou bien les balises [CODE]).

    Citation Envoyé par qtnegg Voir le message
    en gros la booksList est vide
    Le mieux serait de tracer ce que tu fais/lis au fur et à mesure. Tu peux pour cela lancer ton appli en mode debug, et faire du pas-à-pas lorsque tu parcours ta liste de listes. Ou bien tu fais des System.out.println(). Le but étant de voir depuis quand ton bookList est vide (très souvent, on arrivant à l'origine de l'erreur, on en voit la cause). Pense également à vérifier que ce que tu passes en entrée de ta fonction n'est pas vide.

    Mako.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Ça y est il complète ma liste mais toujours avec le même livre, ça doit être tout bête mais je ne vois pas ou je me plante;

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par qtnegg Voir le message
    Ça y est il complète ma liste mais toujours avec le même livre, ça doit être tout bête mais je ne vois pas ou je me plante;
    Tu utilises toujours le même objet Book. Du coup, tu ne fais que modifier plein de fois les propriétés du même livre.

    Essaye comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Book book;
     
    for (List<String> l : rawList) {
        book = new Book();
        for (String ligne : l) {
             // meme traitement qu'avant
        }
    }
    Mako.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Je vous remercie grandement, mon problème à trouver solution donc à chacun de vous merci de vos réponses et de votre patience!

  15. #15
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par qtnegg Voir le message
    Je vous remercie grandement, mon problème à trouver solution donc à chacun de vous merci de vos réponses et de votre patience!
    N'hésite pas à passer ton sujet en résolu s'il l'est (bouton en bas)
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Oui merci, je débarque sur le forum

  17. #17
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par qtnegg Voir le message
    Oui merci, je débarque sur le forum
    Pas de problème, comme ça tu débarqueras directement avec les bonnes habitudes.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

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

Discussions similaires

  1. manipulation des liste déroulantes
    Par erlerwade dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2012, 02h04
  2. manipulation des listes chainées
    Par bounadalvidal dans le forum Débuter
    Réponses: 8
    Dernier message: 19/01/2010, 20h40
  3. De la manipulation des listes déroulantes
    Par Herode dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/11/2007, 17h55
  4. Comment Manipuler des objets dans une liste de type TList ?
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 1
    Dernier message: 02/11/2006, 16h40
  5. Manipuler des listes d'objet ?
    Par xla99 dans le forum Général Python
    Réponses: 4
    Dernier message: 06/06/2006, 16h06

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