Olá.
Pesquisei sobre o tema no fórum e percebi que este tipo de erro é gerado quando a estrutura é percorrida pelo iterator e é feito alguma operação de add ou remove, mas não achei sobre este erro fora de um laço.
Descomente a linha e veja o erro.
import java.util.ArrayList;
import java.util.List;
public class VaiDarPau {
private void adiciona(List<String> lista) {
int meio = lista.size() / 2;
List<String> l1 = new ArrayList<String>();
l1 = lista.subList(0, meio);
List<String> l2 = new ArrayList<String>();
l2 = lista.subList(meio, lista.size());
l1.add(l2.get(0));
//l1.add(l2.get(1)); //descomente essa linha, compile e execute
}
public static void main(String args[]) {
VaiDarPau deuPau = new VaiDarPau();
List<String> lista = new ArrayList<String>();
lista.add("A");
lista.add("B");
lista.add("C");
lista.add("D");
deuPau.adiciona(lista);
}
}