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

Langage Java Discussion :

indic de liste OutOfBound alors qu'il est correct


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut indic de liste OutOfBound alors qu'il est correct
    Bonjour,
    J'ai crée une liste d'un objet termite. je la rempli et à un moment, je dois éliminer certains éléments.
    Je crée donc une méthode qui prend en paramètre l'id du termite et je le recherche dans ma liste.
    voici le 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
    17
    18
    19
    20
     
    // On affiche le numéro du paramètre
    System.out.print("termite numero :");System.out.println(idterm);
    for(int iboucle = 0; iboucle< forreur.size(); iboucle++)
    {
            // On affiche l'id du termite courant
            System.out.print(" \t numéro termite courant:");
            System.out.println(forreur.get(iboucle).getIdTermite());
     
            if(idterm == forreur.get(iboucle).getIdTermite())
            {
                   System.out.println("\t vire un foreur");
                   System.out.print("reste : ");
                   System.out.print(forreur.size());
                   System.out.println("foreur");
     
                   forreur.remove(iboucle);
                   return;
            }    
    }
    En sorti, j'obtiens donc l'evolution de la mort de mes termites, et à certains moment, j'obtiens l'erreur :
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 25, Size: 25

    avec la sortie
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    termite numero :0
              numéro termite courant :0
             vire un foreur
    reste : 30foreur
    termite numero :9
              numéro termite courant :1
              numéro termite courant :2
              numéro termite courant :3
              numéro termite courant :4
              numéro termite courant :5
              numéro termite courant :6
              numéro termite courant :7
              numéro termite courant :8
              numéro termite courant :9
             vire un foreur
    reste : 29foreur
    termite numero :20
              numéro termite courant :1
              numéro termite courant :2
              numéro termite courant :3
              numéro termite courant :4
              numéro termite courant :5
              numéro termite courant :6
              numéro termite courant :7
              numéro termite courant :8
              numéro termite courant :10
              numéro termite courant :11
              numéro termite courant :12
              numéro termite courant :13
              numéro termite courant :14
              numéro termite courant :15
              numéro termite courant :16
              numéro termite courant :17
              numéro termite courant :18
              numéro termite courant :19
              numéro termite courant :20
             vire un foreur
    reste : 28foreur
    termite numero :25
              numéro termite courant :1
              numéro termite courant :2
              numéro termite courant :3
              numéro termite courant :4
              numéro termite courant :5
              numéro termite courant :6
              numéro termite courant :7
              numéro termite courant :8
              numéro termite courant :10
              numéro termite courant :11
              numéro termite courant :12
              numéro termite courant :13
              numéro termite courant :14
              numéro termite courant :15
              numéro termite courant :16
              numéro termite courant :17
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 26, Size: 26
              numéro termite courant :18
              numéro termite courant :19
            at java.util.LinkedList.entry(LinkedList.java:368)
              numéro termite courant :21
            at java.util.LinkedList.get(LinkedList.java:313)
              numéro termite courant :22
            at termites.Termitiere.Simulation(Termitiere.java:284)
              numéro termite courant :23
            at termites.Main.main(Main.java:26)
              numéro termite courant :24
              numéro termite courant :25
             vire un foreur
    reste : 27foreur
    Je mets ma sortie pour montrer que c'est pas forcement le dernier termite qui pose problème.

    Je ne comprend pas l'erreur ni pourquoi elle arrive au hazard.

    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut
    Bonsoir,
    A premiere vue je ne vois rien d'incorrect il faudrait peut-etre que tu regardes ce que tu fais quand tu manipules idterm plus haut
    Si tu pouvais nous fournir un peu plus que ce code la on pourrait mieux t'aider

    tu dois certainement faire une erreur avant de passer dans ta boucle

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut
    oui, je viens de m'en rendre compte.
    Mon problème, c'est que je parcourais ma liste plus haut mais en allant de 1 à un nombre fixe.
    j'ai modifié pour que ma boucle aille uniquement jusque la taille de ma liste

    Merci et déslé pour avoir posté pour une erreur aussi bête

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2007, 16h37
  2. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31
  3. Indice de liste hors limite !!! Report
    Par EssaiEncore dans le forum Langage
    Réponses: 1
    Dernier message: 29/11/2005, 10h00
  4. [Zlib] Dll injoignable alors qu'elle est bien installée
    Par Jamming Ed dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 07/11/2005, 15h45
  5. [Liste] Savoir si un élément est présent dans une liste
    Par Wookai dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/05/2005, 20h44

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