List<T>
utilise une matrice de support pour contenir les articles:
- accès indexeur (c.-à récupération/mise à jour) est O (1)
- Retirer de la queue est O (1)
- Supprimer de ailleurs exige les éléments existants doivent être décalés vers le haut, donc O (n) efficacement
- Ajouter à la fin est O (1) à moins qu'il ne nécessite un redimensionnement, auquel cas c'est O (n). (Ce double la taille du tampon, de sorte que le coût amorti est O (1).)
- Ajouter à ailleurs nécessite des éléments existants à décaler vers le bas, donc O (n) efficace
- Recherche d'un élément est O (n) sauf si elle est triée, auquel cas une recherche binaire donne O (log n)
Il est généralement bon d'utiliser les listes assez largement. Si vous connaissez la taille finale lorsque vous commencez à remplir une liste, c'est une bonne idée d'utiliser le constructeur qui vous permet de spécifier la capacité, pour éviter le redimensionnement. Au-delà: si vous êtes concerné, éclatez le profiler ...
Cela dépend vraiment de ce que vous voulez faire avec eux. – LukeH
"Rapide" et "lent" ne sont pas pertinents. Pertinent sont "assez rapide pour mon client" et "trop lent pour mon client". Votre première question devrait être "les listes sont-elles assez rapides?" Vous êtes le seul à savoir qui est votre client et quelles sont ses exigences en matière de performance, donc seul * vous * pouvez répondre à cette question. Vous y répondrez en essayant des benchmarks significatifs et en les comparant à vos objectifs centrés sur le client. –