LinkedList vs ArrayList en Java: conozca las principales diferencias



Este artículo LinkedList vs ArrayList le dará una comparación adecuada entre las listas que implementan la interfaz de lista

Lista en Java es una subinterfaz del que brinda soluciones óptimas con conceptos como acceso posicional, iteración, etc. En este artículo, discutiré las principales diferencias entre la interfaz de lista LinkedList vs ArrayList en Java.

A continuación, se muestran los temas cubiertos en este artículo:





¡Vamos a empezar!

¿Qué es LinkedList?

Después matrices , la segunda estructura de datos más popular es definitivamente una . Una lista enlazada es una estructura de datos lineal que está constituida por uncadena de nodos en la que cada nodo contiene un valor y unpunteroal siguiente nodo de la cadena.Además, tEl último eslabón de una lista vinculada apunta a nulo, lo que indica el final de la cadena.Un elemento en una lista enlazada se llama nodo .El primer nodo de la lista se llama cabeza .El último nodo se llama cola .



Déjame darte un ejemplo simple de esto: imagina una cadena de sujetapapeles que están unidos entre sí. Puede agregar fácilmente otro clip en la parte superior o inferior. También es fácil insertar uno en el medio. Todo lo que tienes que hacer es simplemente romper la cadena en el medio, agregar un nuevo clip y luego volver a conectar la otra mitad. Una lista vinculada es similar a esta.

Ejemplo:

package MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Declaración de lista enlazada * / LinkedListl_list = new LinkedList () / * add (String Item) is utilizado para agregar * los elementos a la lista vinculada * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Contenido de la lista vinculada:' + l_list) / * Agregar elementos en la posición especificada * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Contenido después de editar: '+ l_list) / * Agregar primer y último elemento * / l_list.addFirst (' Primer curso ') l_list.addLast (' Último curso ') System.out.println (' l_list Contenido después de la adición: '+ l_list) / * Obtener y establezca Elementos en la lista * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content después de actualizar el primer elemento: '+ l_list) / * Eliminar de una posición * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList después de eliminar el elemento en la segunda y tercera posición' + l_list) / * Eliminar el primer y el último elemento * / l_list.removeFirst () l_list.removeLast () System.out.println ('Contenido final después de eliminar el primer y el último elemento : '+ l_list) / * Iterando la lista vinculada * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lista mostrada usando iterador: ') while (itrator.hasNext ()) {System.out.println (itrator .Siguiente()) } } }

Salida:



Contenido de la lista vinculada = {Java, Python, Scala, Swift} Contenido después de la edición = {Java, Python, JavaScript, Kotlin, Scala, Swift} Contenido después de la adición = {Primer curso, Java, Python, JavaScript, Kotlin, Scala, Swift, Último curso} Primer elemento = {Primer curso} Contenido después de actualizar el primer elemento = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Último curso} Contenido después de eliminar el elemento en la segunda y tercera posición = {Java9, Python, Kotlin, Scala, Swift, Last Course} Contenido final después de eliminar el primer y último elemento = {Python, Kotlin, Scala, Swift} Lista mostrada usando iterator = Python Kotlin Scala Swift

Ahora, pasemos al siguiente tema.

¿Qué es una ArrayList?

es la implementación de List Interface donde los elementos se pueden agregar o eliminar dinámicamente de la lista correspondiente. Aquí, el tamaño de la lista aumenta dinámicamente si los elementos se agregan más que el tamaño inicial o real. Aunque puede ser más lento que los arreglos estándar, puede ser útil en programas donde se requiere mucha manipulación en el arreglo.

LinkedList-vs-ArrayList-in-Java-Edureka

cómo convertir cadenas a la fecha

ArrayList se utiliza para estos fines:

  • ArrayList en Java se utiliza para Tienda una colección de elementos de tamaño dinámico.
  • Está inicializado por un tamaño. Sin embargo, el tamaño puede aumentar si la colección crece y se reduce si los objetos se eliminan del .
  • Además, ArrayList le permite acceder aleatoriamente a la lista.

Avancemos y señalemos las similitudes entre LinkedList y ArrayList en Java.

Similitudes entre LinkedList y ArrayList

Estas son las notables similitudes entre LinkedList y ArrayList en Java.

  • ArrayList y LinkedList son las implementaciones del Interfaz de lista .
  • Tanto ArrayList como LinkedList mantienen el orden de inserción de los elementos. Esto significa que, mientras se muestran los elementos de la Lista, el conjunto de resultados tendría el mismo orden en el que los elementos se insertaron en la Lista.
  • Estas clasesArrayList y LinkedList no están sincronizadas y se pueden sincronizar explícitamente usando ColeccionesSynchronizedList método.
  • El iterador y ListIterator devueltos por estas clases son rápidos. Esto significa que, si la lista se modifica estructuralmente en un momento dado después de que se crea el iterador, exceptopropios métodos remove o add del iterador, el iterador lanzará un ConcurrentModificationException .

Diferencias entre LinkedList y ArrayList

Primero, echemos un vistazo a los parámetros para comparar LinkedList vs ArrayList en Java.

Parámetros para comparar LinkedList y ArrayList en Java:

  • Operación
  • Implementación
  • Proceso
  • Memoria
  1. Operaciones

Las operaciones de inserción, adición y eliminación de un artículo son más rápidas en un Lista enlazada porque no necesitamos cambiar el tamaño como lo hacemos en Lista de arreglo.

2. Implementación

Lista de arreglo se basa en el concepto de una matriz redimensionable dinámicamente, mientras Lista enlazada se basa en la implementación de listas doblemente enlazadas

3. Proceso

A Lista enlazada La clase se puede usar como una lista y una cola porque implementa las interfaces List y Deque, mientras que ArrayList solo puede implementar Lists.

4. Memoria

A Lista enlazada consume más memoria que un Lista de arreglo porque cada nodo en un Lista enlazada almacena dos referencias, mientras que Lista de arreglo contiene solo datos y su índice

LinkedList vs ArrayList en Java

ParámetrosLista enlazadaLista de arreglo
Operaciones

Las operaciones de inserción, adición y eliminación son bastante más rápidas

Comparativamente las operacionesson lentos aquí

Implementación

Sigue la implementación de la lista doblemente vinculada

Sigue el concepto de matriz redimensionable dinámicamente

Proceso

Una clase LinkedList puede ser una lista y una cola porque implementa interfaces List y Deque

final finalmente finalizar en java

Una clase ArrayList puede ser una lista porque implementa solo listas

Memoria

El consumo de memoria en LinkedList es alto

Menos en comparación con LinkedList

¡Eso es todo amigos! Esto nos lleva al final de este artículo sobre LinkedList vs ArrayList en Java. Espero que tengan claro lo que se enseña en este artículo.

Si encontró este artículo sobre 'LinkedList vs ArrayList en Java', consulte el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Estamos aquí para ayudarlo en cada paso de su viaje y creamos un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java.