1
resposta

Iterator vs ArrayList

No código abaixo, no it.remove() remove o item do Iterator. Como ele faz para remover o item do objeto lista?

public void removeEmpresa(Integer id) { 

    Iterator<Empresa> it = lista.iterator();

    while(it.hasNext()) { 
        Empresa emp = it.next();

        if(emp.getId() == id ) {
            it.remove();
        }
    }
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Como exatamente o Iterator remove os elementos depende de sua implementação, que pode ser diferente para diferentes coleções. No caso do iterador do ArrayList ele remove o elemento usando o método público remove() do ArrayList e incrementa o contador de modificações da lista para que ConcurrentModificationException não seja lançado na próxima iteração.