O professor explicou que utilizar um foreach para excluir o item de uma lista do tipo ArrayList dá problema, mas antes de mostrar o código eu resolvi implementar outra resolução declarando uma variável antes do foreach, capturando o item desejado e depois do loop fazendo a exclusão, deu certo. Gostaria de saber se este código é má prática e se neste caso é preferível utilizar o Iterator mesmo. Segue:
public void removerEmpresa(Integer idParametro) {
Empresa emp = null;
for (Empresa empresa : listaEmpresas) {
if (empresa.getId() == idParametro) {
emp = empresa;
}
}
listaEmpresas.remove(emp);
}