logo

Cuándo usar ArrayList y LinkedList en Java

ArrayList proporciona un tiempo constante para la operación de búsqueda, por lo que es mejor usar ArrayList si la búsqueda es una operación más frecuente que la operación de agregar y quitar. LinkedList proporciona un tiempo constante para operaciones de agregar y eliminar. Por tanto, es mejor utilizar LinkedList para la manipulación.

ArrayList tiene una complejidad temporal O(1) para acceder a elementos mediante los métodos get y set.

LinkedList tiene una complejidad temporal O(n/2) para acceder a los elementos.

La clase LinkedLinked también implementa la interfaz Deque, por lo que puede obtener la funcionalidad de la cola de doble extremo en LinkedList. La clase ArrayList no implementa la interfaz Deque.

En cierto modo, ArrayList es mejor para acceder a los datos, mientras que LinkedList es mejor para manipular datos. Ambas clases implementan la interfaz List.

Ejemplo de lista de matrices

 import java.util.*; public class ListExample { public static void main(String[] args) { //ArrayList is better to store and view data List list=new ArrayList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('Traversing ArrayList...'); for(String s:list){ System.out.println(s); } } } 

Producción:

 Traversing ArrayList... ankit peter mayank 

Ejemplo de lista vinculada

 import java.util.*; public class ListExample2 { public static void main(String[] args) { //LinkedList is better to manipulate data List list=new LinkedList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('After adding: '+list); list.remove('peter'); System.out.println('After removing: '+list); list.set(1,'vivek'); System.out.println('After changing: '+list); } } 

Producción:

 After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]