¿Cuándo es mejor usar una Lista que una Lista Vinculada?
Solución
En la mayoría de los casos, es más útil. tendrá menos costo al agregar / eliminar elementos en el medio de la lista, mientras que solo puede agregar / eliminar a bajo costo al final de la lista.List<T>
LinkedList<T>
List<T>
LinkedList<T>
es solo más eficiente si está accediendo a datos secuenciales (ya sea hacia adelante o hacia atrás): el acceso aleatorio es relativamente costoso ya que debe caminar por la cadena cada vez (de ahí por qué no tiene un indexador). Sin embargo, debido a que a es esencialmente solo una matriz (con un envoltorio), el acceso aleatorio está bien.List<T>
List<T>
también ofrece muchos métodos de soporte – , , etc; sin embargo, estos también están disponibles para .NET 3.5/C# 3.0 a través de métodos de extensión, por lo que es un factor menor.Find
ToArray
LinkedList<T>
Otras respuestas
Estoy de acuerdo con la mayor parte de lo que se ha dicho anteriormente. Y también estoy de acuerdo en que List parece una opción más obvia en la mayoría de los casos.
Pero, solo quiero agregar que hay muchos casos en los que LinkedList es una opción mucho mejor que List para una mejor eficiencia.
- Supongamos que está atravesando los elementos y desea realizar muchas inserciones / eliminaciones; LinkedList lo hace en tiempo lineal O(n), mientras que List lo hace en tiempo cuadrático O(n^2).
- Supongamos que desea acceder a objetos más grandes una y otra vez, LinkedList se vuelve muy útil.
- Deque() y queue() se implementan mejor usando LinkedList.
- Aumentar el tamaño de LinkedList es mucho más fácil y mejor una vez que se trata de muchos objetos más grandes.
Espero que alguien encuentre útiles estos comentarios.