1. Agregar un elemento al medio (o al principio) de una lista

Si queremos insertar un elemento en medio de la lista, esto es lo que sucede dentro de la lista.

Supongamos que tenemos una lista de 11 elementos:

Agregar un elemento al medio (o al principio) de una lista

Queremos insertar el número 10,000 en la lista en el índice 5. Para hacer esto, solo necesitamos ejecutar:

list.add(5, 10000);

Donde listes una ArrayListvariable. El add(int index, type value)método agrega el valor 10000 en la posición 5 de la lista. Esto es lo que sucede en el add()método:

Paso 1: todos los elementos de la matriz, a partir de la quinta posición, se desplazarán (copiarán) 1 elemento hacia el final de la matriz:

Agregar un elemento al medio (o al principio) de una lista 1

Tenga en cuenta que los elementos en la celda 5 y 6 de la matriz ahora son los mismos.

Paso 2: escriba el valor 10,000 en la quinta celda:

Agregar un elemento al medio (o al principio) de una lista 2

Ahora la lista contiene todos los elementos de la matriz y la quinta celda contiene el número 10,000. Justo lo que queríamos.



2. Eliminar un elemento de una lista

Eliminar un elemento de una lista es similar a insertarlo, pero el proceso es inverso.

Eliminemos el tercer elemento de una lista. Para hacer esto, necesitamos ejecutar:

list.remove(3);

Esto es lo que sucede en el método remove():

Paso 1: Los elementos de la matriz, a partir de la 4.ª posición, se desplazarán (copiarán) 1 elemento hacia el inicio de la matriz:

Eliminar un elemento de una lista

Paso 2: El valor de la sizevariable se reducirá en 1.

Eliminar un elemento de una lista 2

Tenga en cuenta que hay algunos valores de color gris al final de la matriz. Técnicamente, estos son basura. Es necesario eliminarlos para que no interfieran con la recolección de basura .

Paso 3: Limpiar la basura

Eliminar un elemento de una lista 3



3. Ejemplos prácticos de trabajo con una lista en Java

Escribamos algunos ejemplos de trabajo con listas:

Enumeraremos todos los números pares en el rango del 1 al 20:

Código notas
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);
Cree un objeto de lista

Recorra todos los índices 1para 20
Si el índice es divisible por 2sin resto,
agréguelo a la lista

Ahora vamos a mostrar todos los elementos de la lista en la pantalla:

Código notas
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
Cree un objeto de lista
Recorra todos los índices 1hasta 20

Si el número es divisible por 2sin resto,
agréguelo a la lista

Recorra desde cero hasta el tamaño de la lista
Muestre cada elemento en la pantalla

Eliminación de elementos:

Ahora eliminemos todos los elementos que son divisibles por 4. Tenga en cuenta que después de eliminar un elemento de la lista, las posiciones de los elementos restantes cambian inmediatamente.

Código notas
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   if (list.get(i)%4 == 0)
   {
      list.remove(i);
      i--;
   }
Crear un objeto de lista

Recorre todos los índices 1hasta 20
Si el índice es divisible por 2sin resto,
añádelo a la lista

Recorre desde cero hasta el tamaño de la lista
Si un elemento de la lista es divisible por 4sin resto:

a) eliminar el elemento
b) disminuye el icontador para que obtengamos el mismo índice en la próxima iteración del ciclo

Digamos que necesita eliminar los últimos 3 elementos de una lista.

He aquí cómo hacerlo incorrectamente:

Código notas
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

int n = list.size();
list.remove(n - 3);
list.remove(n - 2);
list.remove(n - 1);
Crear un objeto de lista

La lista tiene 10 elementos: 2, 4, 6, ... 20



n = 10
n - 3 = 7(quedan 9 elementos en la lista)
n - 2 = 8(quedan 8 elementos en la lista)
n - 1 = 9(quedan 7 elementos en la lista)

Después de eliminar los elementos 7 y 8, solo quedarán 8 elementos en la lista. Eso significa que no será posible eliminar el noveno elemento; se producirá un error en el programa.

Esta es la forma correcta de eliminar los elementos:

Opción 1 opcion 2
int n = list.size();
list.remove(n - 3);
list.remove(n - 3);
list.remove(n - 3);
int n = list.size();
list.remove(n - 1);
list.remove(n - 2);
list.remove(n - 3);

Los elementos deben eliminarse desde el final o desde otra ubicación constante, ya que los elementos se desplazan uno tras otro después de cada operación de eliminación.