Bonjour tout le monde.

J'ai un petit 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
 
import java.util.*;
 
class Thing { // simple classe qui contient un entier
	private int i;
	public Thing(int i) { this.i = i; }
	public String toString() {return "Thing " + i;}
}
 
public class Test2 {
	public static void main(String[] args) {
 
		List<Thing> lt = new ArrayList<Thing>(); // création et remplissage d'une List
		for(int i=0; i<6; i++) lt.add(new Thing(i));
 
		List<Thing> sub = lt.subList(2, 5); // on prend une sous-liste
		System.out.println(sub);
		lt.removeAll(sub); // et on la retire de la liste d'origine, ça foire ici
	}
}
J'ai fait ce programme basique et il me génère une ConcurrentModificationException .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
[Thing 2, Thing 3, Thing 4]
Exception in thread "main" java.util.ConcurrentModificationException
   at java.util.AbstractList$SubList.checkMod(libgcj.so.10)
   at java.util.AbstractList$SubList.listIterator(libgcj.so.10)
   at java.util.AbstractList.listIterator(libgcj.so.10)
   at java.util.AbstractList$SubList.iterator(libgcj.so.10)
   at java.util.AbstractCollection.contains(libgcj.so.10)
   at java.util.ArrayList.removeAllInternal(libgcj.so.10)
   at java.util.AbstractCollection.removeAll(libgcj.so.10)
   at Test2.main(Test2.java:18)
J'ai regardé dans la javadoc, ce genre d'exception est générée quand on utilise un iterator,
ce que je ne fais pas (en tout cas pas de façon apparente) ici.
quequ'un peut-il (elle) m'aider à résoudre le mystère?
Merci d'avance