Diferencia entre ArrayList y LinkedList

Tabla de contenido:

Diferencia entre ArrayList y LinkedList
Diferencia entre ArrayList y LinkedList

Video: Diferencia entre ArrayList y LinkedList

Video: Diferencia entre ArrayList y LinkedList
Video: 🚀 DIFERENCIAS entre ARRAYLIST y LINKEDLIST en JAVA POO 🖥️ | COLLECTIONS | Explicación FÁCIL 💥#15 2024, Mes de julio
Anonim

Diferencia clave: ArrayList frente a 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 arreglos 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 un conjunto 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 las 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 las 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.

¿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 amplía 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 usar para agregar elementos a la lista. El método remove() se usa para eliminar un elemento de la lista. Consulte el siguiente programa.

Diferencia entre ArrayList y LinkedList
Diferencia entre ArrayList y LinkedList
Diferencia entre ArrayList y LinkedList
Diferencia entre ArrayList y LinkedList

Figura 01: Ejemplo de ArrayList

Según 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 utilizando 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 en el cuarto índice que es "E" se elimina de la lista. Al iterar a través de la lista usando 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 en la secuencia.

La clase LinkedList amplía la clase AbstractSequentialList e implementa la interfaz List. Por lo tanto, los métodos de la interfaz List pueden ser utilizados por LinkedList. El método get() se puede utilizar para acceder a 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.

Diferencia clave entre ArrayList y LinkedList
Diferencia clave entre ArrayList y LinkedList
Diferencia clave entre ArrayList y LinkedList
Diferencia clave entre ArrayList y LinkedList

Figura 02: Ejemplo con LinkedList

Según 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 utilizando 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 en el 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?

ArrayList frente a 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 las interfaces List, Deque, Queue, que internamente utiliza una lista doblemente enlazada para almacenar elementos de datos.
Acceso a elementos
Acceder a elementos de ArrayList es más rápido que de LinkedList. El acceso a los elementos de LinkedList es más lento que el de ArrayList.
Elementos de manipulación
La manipulación de elementos de ArrayList es más lenta que la de LinkedList. La manipulación de elementos de LinkedList es más rápida que la de ArrayList.
Comportamiento
ArrayList funciona como una lista. LinkedList funciona como una lista y una cola.

Resumen: ArrayList frente a 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 colección. Este artículo discutió 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 extiende AbstractSequentialList e implementa las interfaces List, Deque, Queue, que internamente usa una lista doblemente enlazada para almacenar elementos de datos. Esa es la diferencia entre ArrayList y LinkedList.

Recomendado: