У меня очень простой код:
List<String> list = new ArrayList<String>();
String a = "a";
String b = "b";
String c = "c";
String d = "d";
list.add(a);
list.add(b);
list.add(c);
List<String> backedList = list.subList(0, 2);
list.add(0, d);
System.out.println("2b: " + backedList);
И я получаю исключение ConcurrentModificationException по list.add(0, d). Так что в общем, это из-за sublist(). Я очень смущен, потому что в случае подписок() в документации говорится:
Возвращенный список поддерживается этим списком, поэтому неструктурные изменения в возвращенном списке отражаются в этом списке и наоборот.
Не могли бы вы объяснить мне, где улов?