Un ArrayList ou une LinkedList est-il préférable pour le tri?

je veux utiliser une structure de données qui doit être triée chaque maintenant et encore. La taille de la structure des données ne dépassera guère 1 000 éléments.

Lequel est le mieux - ArrayList ou LinkedList?

algorithme de tri est préférable d'utiliser?

20
demandé sur Dukeling 2011-11-09 21:57:06

5 réponses

Jusqu'à Java 7, il ne fait aucune différence parce que Collections.sort vider le contenu de la liste dans un tableau.

avec Java 8, en utilisant un ArrayList devrait être légèrement plus rapide parce que Collections.sort appel List.sort et ArrayList a une version spécialisée qui trie le tableau de soutien directement, enregistrant une copie.

Donc la ligne en bas est ArrayList est meilleur car il donne une performance similaire ou meilleure selon la version de Java.

21
répondu assylias 2014-09-24 09:20:44

si vous allez utiliser java.util.Collections.sort(List) ensuite, il n'a vraiment pas d'importance.

Si le List n'implémente pas RandomAccess, alors il sera exportée vers un List la liste sera mise dans un tableau pour les besoins de tri de toute façon.

(merci de me garder honnête Ralph. Regarde comme j'ai confondu les implémentations de tri et aléatoire. Ils sont assez près de la même chose non?)

8
répondu corsiKa 2011-11-09 18:17:45

si vous pouvez utiliser la bibliothèque Apache, alors regardez liste arborescente. Il aborde votre problème correctement.

4
répondu Saurabh 2016-06-01 22:19:27