Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre a lógica do Método Remover (array) e seus lações de repetição

Não entendi muito bem a lógica por trás do método "Remover" abordado na aula (remove algum item do array e realoca as posições dos itens), alguém poderia me explicar? Grato desde já!

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

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

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

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

            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
1 resposta
solução!

Boa noite, João!

Vamos supor uma array com os seguintes elementos: [casa, cachorro, cinema]. O Array tem por característica a leitura em ordem crescente de seus itens: caso você chame o elemento "cachorro" o computador não vai diretamente nele. Primeiro ele vai ler "casa" e depois vai ler cachorro. E assim sucessivamente.

Dito isso, cada elemento do array tem um índice (posição) que é contado a partir do 0. Nesse exemplo que eu dei, ficaria: casa (índice 0), cachorro (índice 1), cinema (índice 2). Quando você remove um item do array, esse espaço fica vazio. Por exemplo, se você tirar o cachorro, o array vai ficar assim: 0 [casa] 1 [] 2 [cinema] Ou seja, é conveniente mover o elemento "cinema" para o índice 1 e excluir o espaço que foi alocado para o índice 2, já que agora ele está vazio, e consequentemente, melhorar o desempenho na hora que for chamar algum item do array.

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