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.
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!