1. Adicionando um elemento no meio (ou no início) de uma lista
Se quisermos inserir um elemento no meio da lista, eis o que acontece dentro da lista.
Suponha que temos uma lista de 11 elementos:
Queremos inserir o número 10.000 na lista de índice 5. Para isso, basta executar:
list.add(5, 10000);
Onde list
é uma ArrayList
variável. O add(int index, type value)
método adiciona o valor 10000 na posição 5 da lista. Aqui está o que acontece no add()
método:
Etapa 1: Todos os elementos da matriz, começando na 5ª posição, serão deslocados (copiados) por 1 elemento no final da matriz:
Observe que os elementos na 5ª e 6ª célula da matriz agora são os mesmos.
Passo 2: Escreva o valor 10.000 na 5ª célula:
Agora a lista contém todos os elementos da matriz e a quinta célula contém o número 10.000. Exatamente o que queríamos.
2. Removendo um elemento de uma lista
Remover um elemento de uma lista é semelhante a inseri-lo, mas o processo é inverso.
Vamos remover o terceiro elemento de uma lista. Para isso, precisamos executar:
list.remove(3);
Aqui está o que acontece no método remove():
Passo 1: Os elementos do array, a partir da 4ª posição, serão deslocados (copiados) por 1 elemento em direção ao início do array:
Passo 2: O valor da size
variável será diminuído em 1.
Observe que existem alguns valores em cinza no final da matriz. Tecnicamente, estes são lixo. Eles precisam ser removidos para não interferir na coleta de lixo .
Passo 3: Limpando o lixo
3. Exemplos práticos de como trabalhar com uma lista em Java
Vamos escrever alguns exemplos de como trabalhar com listas:
Vamos listar todos os números pares no intervalo de 1 a 20:
Código | Notas |
---|---|
|
Criar um objeto de lista Percorrer todos os índices 1 até 20 Se o índice for divisível por 2 sem resto, adicioná-lo à lista |
Agora vamos exibir todos os elementos da lista na tela:
Código | Notas |
---|---|
|
Criar um objeto de lista Percorrer todos os índices 1 até 20 Se o número for divisível por 2 sem resto, adicioná-lo à lista Percorrer de zero até o tamanho da lista Exibir cada elemento na tela |
Removendo elementos:
Agora vamos remover todos os elementos que são divisíveis por 4. Observe que após remover um elemento da lista, as posições dos elementos restantes mudam imediatamente.
Código | Notas |
---|---|
|
Criar um objeto de lista Percorrer todos os índices 1 até 20 Se o índice for divisível por 2 sem resto, adicioná-lo à lista Percorrer de zero até o tamanho da lista Se um elemento da lista for divisível por 4 sem resto: a) remover o elemento b) diminua o i contador para obtermos o mesmo índice na próxima iteração do loop |
Digamos que você precise remover os últimos 3 elementos de uma lista.
Veja como fazer isso incorretamente:
Código | Notas |
---|---|
|
Criar um objeto de lista A lista tem 10 elementos: 2 , 4 , 6 , ... 20 n = 10 n - 3 = 7 (restam 9 elementos na lista) n - 2 = 8 (restam 8 elementos na lista) n - 1 = 9 (restam 7 elementos na lista) |
Depois de remover o 7º e 8º elementos, apenas 8 elementos permanecerão na lista. Isso significa que não será possível excluir o 9º elemento — ocorrerá um erro no programa.
Aqui está a maneira correta de remover os elementos:
Opção 1 | opção 2 |
---|---|
|
|
Os elementos precisam ser removidos da extremidade ou de outro local consistente, pois os elementos são deslocados um após cada operação de remoção.
GO TO FULL VERSION