¿Es más eficiente eliminar elementos de una ArrayList o LinkedList?
-
10-07-2019 - |
Pregunta
En teoría, ¿es más eficiente eliminar elementos de una ArrayList
o una LinkedList
?
Solución
Es " más fácil " (es decir, más eficiente) para eliminarlos de una LinkedList
, porque la eliminación de una ArrayList
requiere mover todos los elementos posteriores a una nueva posición en la lista & # 8212; todos los subsiguientes A los elementos de la matriz se les debe asignar un nuevo valor. Con una lista vinculada, solo se debe reasignar un puntero (o dos, con una lista doblemente vinculada).
Otros consejos
Bueno, la eliminación de un elemento de una lista (doblemente vinculada) es O (1). Pero la eliminación de una matriz requerirá que los elementos restantes se desplacen un espacio hacia abajo en la matriz, que es O (n).
Dicho esto, obtener un elemento específico en una lista por índice es O (n), mientras que obtener un elemento específico en una matriz por índice es O (1).
Entonces, para la eliminación real, LinkedList será mejor. Hay más información sobre Array versus LinkedList aquí .