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

Java Discussion :

Comparaison des listes


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 57
    Par défaut Comparaison des listes
    Bonjour tout le monde,
    j'ai 2 ensembles de listes (chaque liste contient un mot par ligne) j'aimerais comparer ces deux ensembles pour vérifier que:
    si une liste de l'ensemble 1 contient un mot se trouvant dans une liste de l'ensemble 2 et une autre chaine c si oui je stocke les mots en commun entre chaque deux listes dans une troisième liste puis afficher les element en commun pour chaque liste
    voici mon code
    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
     
    for(i=0;i<taille de l'ensemble1;i++)
    {
      for(j=0;j<taille de l'ensemble2;j++)
      {
        for(k=0;k<liste1.size();k++)
        {
           for(m=0;m<liste2.size();m++)
            {
                 if(liste1.contains(c)&&liste1..get(k).equals(liste2.get(m))
                 {liste3.add(list2.get(m)}
            }
        }
    System.out.println(liste3)
      }
    }
    le problème est que je trouve pas le bon résultat, il répètent plusieurs fois l'affichage du même liste contenant les résultats de chaque comparaison.
    Pourriez vous m'aidez s'ils vous plait?
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par mimihh Voir le message
    si une liste de l'ensemble 1 contient un mot se trouvant dans une liste de l'ensemble 2 et une autre chaine c si oui je stocke les mots en commun entre chaque deux listes dans une troisième liste
    si je comprends bien,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pour toutes les listes liste1 de l'ensemble 1 :
    
         si liste1 contient c (donc en java liste1.contains(c))          
            alors 
                 pour toutes les listes liste2 de l'ensemble 2
                      ajouter à liste3, les mots se trouvant à la fois dans liste1 et liste2 (avec peut être un test pour savoir si le mot n'est pas déjà dans liste3)
                 fin pour
         fin si
    fin pour
    soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for(List<String> liste1 : ensemble1) {
       if ( liste1.contains(c) ) { 
          for(List<String> liste2 : ensemble2) {
             for(String mot : liste2) {
                if (liste1.contains(mot) ) { // mot en commun à liste1 et liste2
                   // if ( !liste3.contains(mot) ) // à décommenter si on ne veut pas avoir plusieurs fois le même mot dans liste2
                  liste3.add(mot);
               }
            }
          }
       }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    si je comprends bien,
    Oh certainement.

    C'est limpide après tout, c'est deux ensembles d'ensembles de mots qui sont des lignes, et si deux conditions sont réunies il faut faire un autre ensemble qui décrit ce qui est commun tous les deux ensembles.

    C'est pas comme si un exemple aurait servi à quelque chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 57
    Par défaut
    Merci pour votre Réponse
    je voulais savoir où pourrais je afficher les éléments en commun pour chaque liste de l’ensemble2. à quel niveau exactement?
    Merci

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mimihh Voir le message
    Merci pour votre Réponse
    je voulais savoir où pourrais je afficher les éléments en commun pour chaque liste de l’ensemble2. à quel niveau exactement?
    Merci
    Ah, oui, en effet, je n'avais pas compris la question...

    Mais là je comprends encore moins, "en commun pour chaque liste de l'ensemble2" : en commun avec quoi ? Avec les éléments de la liste de l'ensemble 1 qui contient le mot c ? Dans ce cas liste3 doit être créée pour chaque nouvelle liste de l'ensemble 2, et affichée pour chaque liste de l'ensemble 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for(List<String> liste1 : ensemble1) {
       if ( liste1.contains(c) ) { 
          for(List<String> liste2 : ensemble2) {
             List<String> liste3=new ArrayList<String>();
             for(String mot : liste2) {
                if (liste1.contains(mot) ) { // mot en commun à liste1 et liste2
                  liste3.add(mot);
               }
             }
             System.out.println(liste3);
          }
      }
    }
    (on pourrait résourdre ça avec retainAll() du coup)

    Un exemple viendrait bien compléter l'explication.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 57
    Par défaut
    j'ai tout essayer mais en vain
    bon je réexplique avec plus de précisions: j'ai 2 ensembles de fichiers chaque ensemble à un taille différents. les fichiers contiennent chacun une liste de mots (un mot par ligne) je devais comparer ces 2 ensembles de fichier pour vérifier à chaque fois si le fichier de 1er ensemble contient la chaine c qui le nom de fichier du 2éme ensemble. Si oui je dois voir s'ils sont des mots en communs, si oui je les stockent à chaque fois dans la liste3.

    avec le code que je teste il y pas toujours de bons résultats

Discussions similaires

  1. Comparaison des clés d'une liste
    Par gaussmatt dans le forum Général Python
    Réponses: 4
    Dernier message: 13/03/2014, 07h50
  2. [html:text][indexed]Valeurs des liste null...
    Par thibaut dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 08/09/2004, 09h36
  3. [glut] de l'intérêt des listes
    Par khayyam90 dans le forum OpenGL
    Réponses: 3
    Dernier message: 26/07/2004, 10h35
  4. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32

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