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 :
En sorti, j'obtiens donc l'evolution de la mort de mes termites, et à certains moment, j'obtiens l'erreur :
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; } }
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 25, Size: 25
avec la sortie
Je mets ma sortie pour montrer que c'est pas forcement le dernier termite qui pose problème.
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 ne comprend pas l'erreur ni pourquoi elle arrive au hazard.
Merci pour votre aide
Partager