一、问题复现
private static void wrong() {
List<Integer> list = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toList());
List<Integer> subList = list.subList(1, 4);
System.out.println(subList);
subList.remove(1);
System.out.println(list);
System.out.println(subList);
list.add(0);
try {
System.out.println(list);
System.out.println(subList);
subList.forEach(System.out::println);
} catch (Exception ex) {
ex.printStackTrace();
}
}
输出:
[2, 3, 4]
[1, 2, 4, 5, 6, 7, 8, 9, 10]
[2, 4]
[1, 2, 4, 5, 6, 7, 8, 9, 10, 0]
java.util.ConcurrentModificationException
at java.util.ArrayList$SubList.checkForComodification(ArrayList.java:1239)
&nb