Diferencia clave - ArrayList vs LinkedList
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 marco con un conjunto de clases e interfaces. Sirve como contenedor para un grupo de elementos. Las colecciones permiten almacenar, actualizar, recuperar conjuntos de elementos. Ayuda a trabajar con estructuras de datos como listas, conjuntos, árboles y mapas. La lista es una interfaz del marco de la colección. 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 List, que utiliza internamente una matriz dinámica para almacenar elementos de datos. LinkedList es una clase que amplía AbstractSequentialList e implementa interfaces List, Deque y Queue, que utilizan internamente una lista doblemente enlazada para almacenar elementos de datos. Esa es la diferencia clave entre ArrayList y LinkedList.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué 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
¿Qué 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 usando 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 extiende la clase AbstractList que implementa la interfaz List. Por lo tanto, ArrayList puede utilizar los métodos de la interfaz List. Para acceder a los elementos, se utiliza el método get (). El método add () se puede utilizar para agregar elementos a la lista. El método remove () se usa para eliminar un elemento de la lista. Consulte el programa a continuación.
Figura 01: Ejemplo de ArrayList
Según el programa anterior, se crea un objeto de ArrayList. Con el método de adición, los elementos se pueden agregar de forma dinámica. Los elementos "A", "B", "C", "D" y "E" se agregan mediante el método de suma. 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 del cuarto índice que es "E" se elimina de la lista. Al recorrer la lista con el bucle for, se imprimirán las letras A, B, C y D.
¿Qué es LinkedList?
Al igual que ArrayList, LinkedList se utiliza para almacenar elementos de datos de forma dinámica. Un objeto creado usando 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 de la secuencia.
La clase LinkedList extiende la clase AbstractSequentialList e implementa la interfaz List. Por lo tanto, LinkedList puede utilizar los métodos de la interfaz List. El método get () se puede utilizar para acceder a elementos de la lista. El método add () se puede utilizar para agregar elementos a la lista. El método remove () se usa para eliminar un elemento de la lista. Consulte el programa a continuación.
Figura 02: Ejemplo con LinkedList
Según el programa anterior, se crea un objeto de LinkedList. Con el método de adición, los elementos se pueden agregar de forma dinámica. Los elementos "A", "B", "C", "D" y "E" se agregan mediante el método de suma. 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 del cuarto índice que es "E" se elimina de la lista. Al iterar usando el bucle for, se imprimirán las letras A, B, C y D.
¿Cuáles son las similitudes entre ArrayList y LinkedList?
- Tanto ArrayList como LinkedList implementan la interfaz List.
- 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?
Diferencia del medio del artículo antes de la mesa
ArrayList vs LinkedList |
|
ArrayList es una clase que extiende AbstractList e implementa la interfaz List que utiliza internamente una matriz dinámica para almacenar elementos de datos. | LinkedList es una clase que extiende AbstractSequentialList e implementa interfaces List, Deque, Queue, que internamente usa una lista doblemente vinculada para almacenar elementos de datos. |
Acceso a elementos | |
El acceso a elementos de ArrayList es más rápido que el de LinkedList. | Acceder a elementos de LinkedList es más lento que a ArrayList. |
Elementos manipuladores | |
La manipulación de elementos de ArrayList es más lenta que la de LinkedList. | Manipular elementos de LinkedList es más rápido que de ArrayList. |
Comportamiento | |
ArrayList funciona como una lista. | LinkedList funciona como una lista y una cola. |
Resumen - ArrayList vs LinkedList
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 recopilación. Este artículo discutió la diferencia entre ArrayList y LinkedList. ArrayList es una clase que extiende AbstractList e implementa la interfaz List que utiliza internamente una matriz dinámica para almacenar elementos de datos. LinkedList es una clase que extiende AbstractSequentialList e implementa interfaces List, Deque, Queue, que internamente usa una lista doblemente vinculada para almacenar elementos de datos. Esa es la diferencia entre ArrayList y LinkedList.