Não tenho uma dúvida mas sim um comentário, é interessante verificar se o índice do item é diferente de -1, que acontece se a conta a ser removida não estiver na lista, sem querer aconteceu esse situação aqui comigo e acabou lançando uma exceção.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não tenho uma dúvida mas sim um comentário, é interessante verificar se o índice do item é diferente de -1, que acontece se a conta a ser removida não estiver na lista, sem querer aconteceu esse situação aqui comigo e acabou lançando uma exceção.
Olá Matheus, tudo bem?
Obrigada por compartilhar seu comentário sobre a verificação do índice do item em um array. É uma observação muito válida!
Realmente, é importante verificar se o índice do item é diferente de -1 antes de continuar a execução do código. Isso evita que ocorra uma exceção caso a conta a ser removida não esteja na lista.
No exemplo que você mencionou, em um array com 1000 referências de objetos, se descobrirmos que o item está na posição 10, não é necessário continuar percorrendo o array da posição 11 até a posição 1000. Podemos utilizar a instrução break para abandonar o laço de repetição assim que encontrarmos o índice do item. Dessa forma, economizamos processamento e evitamos exceções desnecessárias.
Aqui está o código atualizado com a verificação do índice do item:
public void Remover(ContaCorrente item)
{
int indiceItem = -1;
for(int i = 0; i < _proximaPosicao; i++)
{
ContaCorrente itemAtual = _itens[i];
if (itemAtual.Equals(item))
{
indiceItem = i;
break;
}
}
if (indiceItem != -1)
{
// Remover o item da lista
for(int i = indiceItem; i < _proximaPosicao - 1; i++)
{
_itens[i] = _itens[i + 1];
}
_proximaPosicao--;
_itens[_proximaPosicao] = null;
}
}
Dessa forma, se o índice do item for -1, significa que o item não está na lista e nenhum processamento adicional será realizado. Caso contrário, o item será removido corretamente.
Espero ter ajudado! Bons estudos!