Tout dépend du type d'opération que vous effectuez lors de l'itération, toutes les structures de données ont un compromis entre le temps et la mémoire et en fonction de nos besoins, nous devons choisir le bon DS. Il y a donc des cas où LinkedList est plus rapide que array et vice versa. Considérez les trois opérations de base sur les structures de données.
Étant donné que le tableau est une structure de données basée sur un index, la recherche de array.get (index) prendra O (1) temps tandis que la liste liée n'est pas l'index DS, vous devrez donc parcourir jusqu'à l'index, où index <= n, n est la taille de la liste liée, Ainsi, le tableau est plus rapide dans la liste liée lorsque vous avez un accès aléatoire aux éléments.
Q. Alors, quelle est la beauté derrière tout ça?
Comme les tableaux sont des blocs de mémoire contigus, de gros morceaux d'entre eux seront chargés dans le cache lors du premier accès, ce qui rend l'accès relativement rapide aux éléments restants du tableau, autant que nous accédons aux éléments dans la localité de référence du tableau augmente également donc moins de capture manque, la localité du cache fait référence aux opérations qui se trouvent dans le cache et s'exécutent donc beaucoup plus rapidement que dans la mémoire, fondamentalement En tableau, nous maximisons les chances d'accès séquentiel aux éléments dans le cache. Bien que les listes liées ne soient pas nécessairement dans des blocs contigus de mémoire, il n'y a aucune garantie que les éléments qui apparaissent séquentiellement dans la liste sont réellement disposés les uns à côté des autres en mémoire, cela signifie moins de hits de cache
C'est facile et rapide dans LinkedList car l'insertion est une opération O (1) dans LinkedList (en Java) par rapport au tableau, considérez le cas où le tableau est plein, nous devons copier le contenu dans un nouveau tableau si le tableau est plein, ce qui rend l'insertion d'un dans ArrayList de O (n) dans le pire des cas, alors que ArrayList doit également mettre à jour son index si vous insérez quelque chose n'importe où sauf à la fin du tableau, dans le cas d'une liste liée, nous n'avons pas besoin de la redimensionner, il vous suffit de mettre à jour les pointeurs.
Cela fonctionne comme des insertions et mieux dans LinkedList que dans un tableau.