Dúvida sobre listas estáticas java

1 resposta
java
Grazi_Barbosa1
Olá pessoal estou com uma duvida sobre listas estaticas, gostaria de saber porque o método

public void insert(E element, int pos)

//desloca para a direita os elementos necessários

//abrindo espaço para um novo elemento

for(int i = numElements -1;i>=pos;i)

elements [i+1]=elements [i]

// gostaria de saber porque tem o i+1 dentro do array  ??

1 Resposta

staroski

A resposta para essa pergunta está nas duas linhas em comentário acima do seu laço.
A cada iteração ele pega o elemento na posição atual ( i ) e coloca na próxima posição ( i + 1 ).
Como esse laço executa de trás pra frente (começa na última posição e vai vinda pra posição pos) ao final da iteração a posição pos receberá o elemento passado por parâmetro e todos os elementos nas posições maiores que pos estarão deslocados à direita.

Talvez se você reescrever assim, fica mais legível:

for (int i = numElements - 1; i >= pos; i--) {
    int posicaoAtual = i;
    int posicaoSeguinte = i + 1;
    E elementoTrocandoDeLugar = elements[posicaoAtual];
    elements[posicaoSeguinte] = elementoTrocandoDeLugar;
Criado 27 de junho de 2018
Ultima resposta 27 de jun. de 2018
Respostas 1
Participantes 2