Diferencia entre ArrayList y LinkedList

Diferencia clave - ArrayList vs Lista enlazada
 

Las colecciones son útiles para almacenar datos. En una matriz normal, el tamaño de la matriz es fijo. A veces es necesario crear matrices que puedan crecer según sea necesario. Los lenguajes de programación como Java tienen colecciones. Es un framework con un conjunto de clases e interfaces. Sirve como un contenedor para un grupo de elementos. Las colecciones permiten almacenar, actualizar, recuperar un conjunto de elementos. Ayuda a trabajar con estructuras de datos como listas, conjuntos, árboles y mapas. La lista es una interfaz del framework Collection. ArrayList y LinkedList son dos clases en el marco de colecciones. Implementan la interfaz de colección y la interfaz de lista. Este artículo analiza la diferencia entre ArrayList y LinkedList. ArrayList es una clase que amplía AbstractList e implementa la interfaz de lista, que utiliza internamente una matriz dinámica para almacenar elementos de datos. LinkedList es una clase que amplía AbstractSequentialList e implementa las interfaces List, Deque y Queue, que utilizan internamente una lista con doble enlace para almacenar elementos de datos.. Eso es el diferencia clave entre ArrayList y LinkedList.

CONTENIDO

1. Resumen y diferencia clave
2. Que es ArrayList
3. Qué es LinkedList
4. Similitudes entre ArrayList y LinkedList
5. Comparación lado a lado - ArrayList vs LinkedList en forma tabular
6. Resumen

Que es ArrayList?

La clase ArrayList se utiliza para crear matrices dinámicas. A diferencia de una matriz normal, el tamaño de una matriz dinámica no es fijo. Un objeto creado con la clase ArrayList puede almacenar un conjunto de elementos en la lista. La capacidad aumenta automáticamente, por lo que el programador puede agregar elementos a la lista. La clase ArrayList amplía la clase AbstractList que implementa la interfaz de lista. Por lo tanto, los métodos de la interfaz de lista pueden ser utilizados por ArrayList. Para acceder a los elementos, se utiliza el método get (). El método add () se puede usar para agregar elementos a la lista. El método remove () se usa para eliminar un elemento de la lista. Consulte el siguiente programa.

Figura 01: Ejemplo de ArrayList

De acuerdo con el programa anterior, se crea un objeto de ArrayList. Usando el método add, los elementos se pueden agregar dinámicamente. Los elementos "A", "B", "C", "D" y "E" se agregan mediante el método de adición. El método de eliminación se utiliza para eliminar un elemento de la lista. Al pasar 4 al método de eliminación, la letra en el 4º índice que es "E" se elimina de la lista. Al recorrer la lista utilizando el bucle for, se imprimirán las letras A, B, C y D.

Qué es LinkedList?

Similar a ArrayList, LinkedList se usa para almacenar elementos de datos dinámicamente. Un objeto creado con la clase LinkedList puede almacenar un conjunto de elementos en la lista. La capacidad aumenta automáticamente, por lo que el programador puede agregar elementos a la lista. Utiliza internamente una lista doblemente enlazada para almacenar datos. En una lista doblemente enlazada, los datos se almacenan como nodos. Cada nodo contiene dos enlaces. El primer enlace apunta al nodo anterior. El siguiente enlace apunta al siguiente nodo en la secuencia.

La clase LinkedList extiende la clase AbstractSequentialList e implementa la interfaz List. Por lo tanto, los métodos de interfaz de lista pueden ser utilizados por LinkedList. El método get () se puede utilizar para acceder a los elementos de la lista. El método add () se puede usar para agregar elementos a la lista. El método remove () se usa para eliminar un elemento de la lista. Consulte el siguiente programa.

Figura 02: Ejemplo con LinkedList

De acuerdo con el programa anterior, se crea un objeto de LinkedList. Usando el método add, los elementos se pueden agregar dinámicamente. Los elementos "A", "B", "C", "D" y "E" se agregan mediante el método de adición. El método de eliminación se utiliza para eliminar un elemento de la lista. Al pasar 4 al método de eliminación, la letra en el 4º índice que es "E" se elimina de la lista. Al iterar usando el bucle for, las letras A, B, C y D se imprimirán.

Cuáles son las similitudes entre ArrayList y LinkedList?

  • Tanto ArrayList como LinkedList implementan la interfaz de lista.
  • Tanto ArrayList como LinkedList pueden contener elementos duplicados.
  • Tanto ArrayList como LinkedList mantienen el orden de inserción.

¿Cuál es la diferencia entre ArrayList y LinkedList?

ArrayList vs LinkedList

ArrayList es una clase que amplía AbstractList e implementa la interfaz de lista que utiliza internamente una matriz dinámica para almacenar elementos de datos.. LinkedList es una clase que extiende la AbstractSequentialList e implementa las interfaces List, Deque, Queue, que internamente usa una lista doblemente enlazada para almacenar elementos de datos.
 Elementos de acceso
Acceder a los elementos de ArrayList es más rápido que a un LinkedList. Acceder a los elementos de LinkedList es más lento que a un ArrayList.
Elementos manipuladores
La manipulación de elementos de ArrayList es más lenta que la de un LinkedList. La manipulación de elementos de LinkedList es más rápida que la de un ArrayList.
 Comportamiento
ArrayList actúa como una lista. LinkedList se realiza como una lista y una cola.

Resumen - ArrayList vs Lista enlazada

El marco de recopilación permite trabajar con estructuras de datos como listas, árboles, mapas y conjuntos. La lista es una interfaz del marco de la colección. Este artículo discutió la diferencia entre ArrayList y LinkedList. ArrayList es una clase que amplía AbstractList e implementa la interfaz de lista que utiliza internamente una matriz dinámica para almacenar elementos de datos. LinkedList es una clase que extiende la AbstractSequentialList e implementa las interfaces List, Deque, Queue, que internamente usa una lista con enlaces dobles para almacenar elementos de datos. Esa es la diferencia entre ArrayList y LinkedList.

Referencia:

1.Introducción a la lista vinculada | Tutorial de estructura de datos | Studytonight. Disponible aquí
2. "LinkedList en Java - javatpoint".,El punto, Disponible aquí
3. "Clase Java ArrayList - javatpoint". El punto, Disponible aquí