Warum ist es passiert?unklar java.util.ConcurrentModificationException
Ich habe diesen Code geschrieben und es wirft java.util.ConcurrentModificationException
List<Integer> list = Stream.iterate(0, t -> t + 1).limit(10).collect(Collectors.toList());
System.out.println(list);
List<Integer> subList = list.subList(5, list.size());
list.removeAll(subList);
System.out.println(subList);
System.out.println(list);
Aber nächste Code wirft nicht
List<Integer> list = Stream.iterate(0, t -> t + 1).limit(10).collect(Collectors.toList());
System.out.println(list);
List<Integer> subList = list.subList(5, list.size());
System.out.println(subList);
list.removeAll(subList);
System.out.println(list);
@Blasanka beheben Wo kommt das erste Code-Schnipsel Iterierte während einige Modifikationen zu tun? Hast du gesehen, dass der einzige Unterschied der Austausch von zwei Zeilen ist, von denen eine nur die Unterliste ausdruckt? – Seelenvirtuose
Ich kenne Änderungen während der Listeniteration. Aber auf meine Art habe ich zwei Endbearbeitungen im Single Thread –