terça-feira, 17 de outubro de 2017

Removendo um elemento de uma Collection durante um laço "for" no Java

Erros simples as vezes nos fazem perder tempo. As vezes temos uma coleção de objetos e em determinado momento precisamos percorrer essa coleção e remover alguns objetos de dentro dela, porém somos surpreendidos com uma mensagem de erro. O foreach não permite que façamos isso, pois ele acaba se perdendo na iteração.

Para resolver o problema, use o Iterator do java.

private void preencheCarroComCabecalho(
            final List<BtpCarro> lstBtpCarros, BtpCabecalho btpCabecalho)
{
        for (final Iterator<BtpCarros> iterator = lstBtpCarros
                .iterator(); iterator.hasNext();)
        {
            final BtpCarro btpCarro = iterator
                    .next();
            if ( btpCarros.getCarSeqCarro() != null )
            {
                btpCarros.setMarca(cabecalho.getMarca());
                btpCarros.setAno(cabecalho.getAno());
                btpCarros.setCor(cabecalho.getCor());
            }
            else
            {
      iterator.remove();
            }
        }
}

Nenhum comentário:

Postar um comentário