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 :

Problème de parcours de tableau bluffant


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    PHP + JAVA
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : PHP + JAVA

    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut Problème de parcours de tableau bluffant
    Vous allez peut-être me prendre pour un fou furieux, mais lorsque je fais un parcours total de mon tableau (voici le code associé)
    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
     
    public void supprimeMotNonImbrique()
        {
            /**grâce à cette méthode (après traitement de supprimeMotDejaExistant()),
             * on supprime les mots dans listeTemporaire qui ne sont pas imbriqués
             * c'est à dire que lors de la génération (lorsque l'on génère le tableau listeImbrication ,voir 
             * CliqueTemporaire)on ne retrouve pas tous les mots dans listeMot.
             * (deuxième filtre)
             */
            System.out.println(this.listeTemporaireMot.size());
            for (int i=0;i<this.listeTemporaireMot.size();i++)
            {
                this.clique=new CliqueTemporaire(this.listeTemporaireMot.get(i));
                this.clique.generationTableauTemporaire();
                if (!this.clique.verificationImbrication())
                {
                    this.listeTemporaireMot.remove(i);
                }
                System.out.print(i);
            }
            this.generationChaqueMot();
        }
    Lorsque je veux afficher la size il me rend 64 (ce qui est tout à fait exact). Mais quand je rentre dans le for (quand j'affiche i il m'affiche de 0-31 c'est à dire exactement la moitié de mon tableau). Je signale au passage que mon tableau est de type ArrayList. Bref alors que je devrais parcourir entièrement mon tableau (0-63), je ne parcours que la moitié.
    Dommage je peux pas intégrer d'image de mon ordi.
    Y a-t-il quelque chose que je ne fais pas? (je n'ai aucune erreur signalé par eclipse)

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Tu supprimes des objets de ta liste, pas étonnant que tu n'ailles pas au bout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.listeTemporaireMot.remove(i);

  3. #3
    Membre confirmé
    Homme Profil pro
    PHP + JAVA
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : PHP + JAVA

    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    Et alors je vois pas le problème. Quelque soit les opérations que l'on fasse sur un ArrayList (si on fait un parcours total) on doit aller jusqu'au bout même si l'on supprime des mots (dans mon cas).

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Si tu passes par l'indice, non. La façon propre de le faire serait avec un iterateur, ou bien avec un foreach en construisant une liste d'objets à retirer à la fin.

    Imagine une liste de 2 éléments.
    i = 0 => Tu testes le 1er élément. Pas bon, tu le retires. La taille de ta liste est maintenant 1.
    i = 1. Tu sors de ton for.
    Moralité tu n'as pas testé ton 2ème élément.

  5. #5
    Membre confirmé
    Homme Profil pro
    PHP + JAVA
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : PHP + JAVA

    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    Ok je vois pourquoi maintenant il ne fait que la moitié. Pour le foreach j'ai déjà essayé il me fait une erreur de commodification. En gros il ne veut pas que je modifie pour chaque mot. A moins que maintenant ça soit possible. Il faudrait que j'essaie. Bon j'ai essayé j'avais raison:
    at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
    at java.util.AbstractList$Itr.next(Unknown Source)
    Conclusion comment supprimer toute la liste et non pas la moitié en ayant un remove?

  6. #6
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Pour le foreach comme je l'ai dit, si tu veux l'utiliser il faut construire la liste des objets à retirer, et les retirer tout à la fin.

    Sinon, utiliser un itérateur.

    Enfin, il y a la possibilité de faire i-- quand tu retires un objet.

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

Discussions similaires

  1. [WB18] Problème de parcours de tableau à plusieurs dimensions de chaîne
    Par fabian_RemLab dans le forum WebDev
    Réponses: 0
    Dernier message: 14/06/2015, 00h46
  2. Problème de taille de tableau
    Par k-nine dans le forum C
    Réponses: 6
    Dernier message: 25/09/2005, 09h16
  3. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30
  4. problème d'affectation de tableau ...
    Par Mike888 dans le forum C
    Réponses: 23
    Dernier message: 26/02/2005, 14h52
  5. [Debutant(e)]Pb parcours de tableau
    Par joquetino dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 22/09/2004, 09h08

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