Na
fiquei preso nessa parte e nao entendi muito bem o porque usamos esse _proximaPosicao-- ao final do remover, igual quando usamos ele com "++" em adicionar
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!
Na
fiquei preso nessa parte e nao entendi muito bem o porque usamos esse _proximaPosicao-- ao final do remover, igual quando usamos ele com "++" em adicionar
Por exemplo, se tivermos itens como um Array com 10 elementos:
[item0,item1,item2,item3,item4,item5,null,null,null,null]
Nessa caso, proximaPosicao seria 6, porque é o primeiro elemento vago.
proximoIndice: ↓
[item0,item1,item2,item3,item4,item5,null,null,null,null]
Se quisermos remover o item3, o código no primeiro vai procurar o elemento item3 e salvar a posição em indiceItem, no caso indiceItem = 3. No segundo for, ele vai copiar os itens depois uma posição para trás, ficando:
proximoIndice: ↓
[item0,item1,item2,item4,item5,item5,null,null,null,null]
Nessa momento o proximaPosicao ainda está apontando para o indice 6, o primeiro null. Então é subitraído 1 para apontar para o indice 5 ( o segundo item5).
proximoIndice: ↓
[item0,item1,item2,item4,item5,item5,null,null,null,null]
E depois remover esse item.
proximoIndice: ↓
[item0,item1,item2,item4,item5,null,null,null,null,null]