Diferencias entre List y Arraylist en Java

Zeeshan Afridi 12 octubre 2023
  1. Marco de colección
  2. Lista en Java
  3. ArrayList en Java
  4. Diferencias entre List y ArrayList en Java
Diferencias entre List y Arraylist en Java

ArrayList y List son miembros del marco Collection en Java, donde ArrayList es una clase y List es una interfaz. Podemos realizar diferentes operaciones como eliminación, inserción, clasificación, manipulación y búsqueda en un grupo de objetos con la ayuda del marco Collection.

Marco de colección

El marco de la colección en Java tiene el siguiente conjunto de interfaces y clases:

Interfaz:

  1. conjunto
  2. Cola
  3. Lista
  4. Deque

Clases:

  1. ArrayLista
  2. Vectores
  3. Lista Vinculada
  4. HashSet
  5. Conjunto de árboles
  6. Conjunto de hash vinculado
  7. Cola de prioridad

El marco Collection tiene diferentes clases e interfaces, pero este artículo se centrará solo en List y ArrayList, así que analicemos cada uno con un ejemplo.

Lista en Java

En Java, List pertenece al framework Collection. Es un grupo ordenado de objetos representados como una sola unidad.

Podemos almacenar tipos heterogéneos de datos en una lista y acceder a los datos en función de los índices de los elementos de la lista. Puede realizar diferentes operaciones como eliminar, insertar, actualizar y buscar en una lista en Java.

La interfaz Lista se puede encontrar en el paquete java.util. Hereda la interfaz Collection.

Implementa las clases LinkedList, Stack, ArrayList y Vector. Podemos iterar sobre una lista tanto en dirección hacia atrás como hacia adelante.

package articlecodesinjava;

import java.util.ArrayList;
import java.util.List;

class TestingList {
  public static void main(String[] args) {
    List<String> list = new ArrayList<>(); // List object
    list.add("Successfully created a list in Java"); // adding a string to the List
    System.out.println(list);
  }
}

Producción :

[Successfully created a list in Java]    //The output is in List form

Métodos de lista incorporados en Java

En Java, una lista tiene varios métodos específicos. Estos se utilizan para diferentes propósitos; algunos de los más populares y frecuentes son los siguientes:

package articlecodesinjava;

import java.util.*;

class TestingList {
 public static void main(String[] args) {
   List<Object> list = new ArrayList<>();

   list.add(1); // Adding values in list
   list.add(2);
   System.out.println("List after adding values " + list);

   list.removeAll(list); // return and empty list, all values are erased
   System.out.println("List after the removeAll method " + list);

   list.add("3"); // Adding values in list
   list.add("4");
   System.out.println("New list " + list);

   System.out.println("The size of the List " + list.size());

   System.out.println("Return a value from the list a 1 position " + list.get(1));
   System.out.println("Removing value at position 1 = " + list.remove(1));
   System.out.println("Final list" + list);
 }
}

Producción :

List after adding values [1, 2]
List after the removeAll method []
New list [3, 4]
The size of the List 2
Return a value from the list a 1 position 4
Removing value at position 1 = 4
Final list[3]

Primero, hemos importado el paquete java.util.* para acceder a List y ArrayList en el programa anterior. Luego creamos una lista y, con el objeto de la lista, primero completamos algunos valores con add(), luego eliminamos todos los datos de la lista con removeAll() y devolvió una lista vacía.

Además, nuevamente hemos agregado algunos valores en la lista para realizar otras operaciones en la lista. Encontramos el tamaño de la lista con size() y mostramos un valor en la posición/índice número 1 con get(1), y al final, hemos eliminado un valor en el índice número 1 con remove(1).

La lista tiene toneladas de métodos integrados. Puedes leer más en el sitio oficial de Java.

ArrayList en Java

En Java, ArrayList es una versión avanzada de la matriz tradicional. La matriz tradicional tiene un tamaño fijo, por lo que no era posible aumentar y reducir el tamaño de la matriz.

Por lo tanto, el marco de Collection presenta una matriz dinámica conocida como ArrayList. La clase ArrayList es una matriz dinámica que puede expandir y reducir su tamaño al agregar y eliminar elementos de la lista.

Hereda la clase AbstractList e implementa la interfaz List para utilizar todos los métodos de la interfaz List. Se puede acceder a los elementos a través de los índices de los elementos de la lista.

ArrayList no admite tipos de datos primitivos como char, int, float, etc. Pero usamos la clase contenedora para tales casos.

package articlecodesinjava;

import java.util.ArrayList;

class TestingArrayList {
  public static void main(String[] args) {
    ArrayList<String> arrayList = new ArrayList<>(); // ArrayList object
    arrayList.add("Successfully created an arrayList in Java"); // adding a string to the ArrayList
    System.out.println(arrayList);
  }
}

Producción :

[Successfully created an arrayList in Java]

Métodos ArrayList incorporados en Java

ArrayList extiende AbstractList, que implementa List, por lo que podemos usar todos los métodos de List en ArrayList.

Vea el ejemplo a continuación. Usaremos todos los programas anteriores con los mismos métodos en ArrayList.

Ejemplo de código:

package articlecodesinjava;

import java.util.*;

class TestingArrayList {
  public static void main(String[] args) {
    ArrayList arrayList = new ArrayList<>();

    arrayList.add(1); // Adding values in ArrayList
    arrayList.add(2);
    System.out.println("ArrayList after adding values " + arrayList);

    arrayList.removeAll(arrayList); // return and empty ArrayList, all values are erased
    System.out.println("ArrayList after the removeAll method " + arrayList);

    arrayList.add("3"); // Adding values in ArrayList
    arrayList.add("4");
    arrayList.add(0, 5);

    System.out.println("New ArrayList " + arrayList);

    System.out.println("The size of the ArrayList " + arrayList.size());

    System.out.println("Return a value from the ArrayList at 1 position " + arrayList.get(1));

    System.out.println("Removing value at position 1 = " + arrayList.remove(1));
    System.out.println("Final ArrayList" + arrayList);
  }
}

Producción :

ArrayList after adding values [1, 2]
ArrayList after the removeAll method []
New ArrayList [5, 3, 4]
The size of the ArrayList 3
Return a value from the ArrayList at 1 position 3
Removing value at position 1 = 3
Final ArrayList[5, 4]

Diferencias entre List y ArrayList en Java

A continuación se muestran algunas de las diferencias clave entre List y ArrayList en Java:

Lista

  1. Lista es una interfaz.
  2. La interfaz Lista amplía el marco de la colección.
  3. No se puede instanciar.
  4. Crea una lista de objetos.
  5. Las listas son más rápidas en la manipulación de objetos.

Lista de arreglo

  1. ArrayList es una clase de colección estándar.
  2. ArrayList amplía AbstractList, que implementa las interfaces List.
  3. Se puede instanciar.
  4. crea una matriz de objetos.
  5. ArrayLists no son tan rápidos en la manipulación de objetos en comparación con List.
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Java List

Artículo relacionado - Java ArrayList