2
respostas

Sugestão Melhoria do Código Remover

No código da Aula, o Comando para remove um item da lista ficou:

        public void Remover(T item)
        {
            int indiceItem = -1;

            for (int i = 0; i < _proximaPosicao; i++)
            {
                T itemAtual = _itens[i];

                if (itemAtual.Equals(item))
                {
                    indiceItem = i;
                    break;
                }
            }

            // Quero remover o 0x01

            // [0x03] [0x04] [0x05] [null]
            //                       ^
            //                        ` _proximaPosicao

            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }

            _proximaPosicao--;
            //_itens[_proximaPosicao] = null;
        }

Porem, ela cai em um problema de lógica quando não encontra o item equivalente, quando tenta rodar o segundo "for" iniciando pelo indice "-1" eu sugiro uma abordagem assim:

        public void Remover(T item)
        {
            for (int i = 0; i < _proximaPosicao; i++)
            {
                T contaIndice = _itens[i];
                if (contaIndice.Equals(item))
                {
                    for (int i2 = i; i2 < _proximaPosicao - 1; i2++)
                    {
                        _itens[i2] = _itens[i2 + 1];
                    }
                    _proximaPosicao--;
                    //_itens[_proximaPosicao] = null;
                    break;
                }
            }
        }

Aonde eu só removo o item caso encontre, ou então um "throw new Exception" especificando o erro

2 respostas

Olá Thiago!

É uma ótima sugestão, mas o problema é que o código não bateria com o que foi explicado. E fica inviável a regravação de apenas uma aula, com isso, não seria aprovado na transcrição do vídeo.

Mas a intenção é muito boa! Ver um código que pode ser melhorado e conseguir melhorar.

Continue sempre com esse foco! Bons estudos!

Agradeço a atenção, e parabéns pelo excelente material de vocês, sou novo na plataforma e estou realmente impressionado com tudo que acompanhei até agora, fico feliz de saber que estou no caminho certo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software