Pregunta

En teoría, ¿es más eficiente eliminar elementos de una ArrayList o una LinkedList ?

¿Fue útil?

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í .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top