161 votes

Quelle est la différence entre une collection ordonnée et une collection triée?

Existe-t-il une différence entre une collection triée et une collection ordonnée ?

198voto

g . Points 4496

Une collection ordonnée signifie que les éléments de la collection ont un ordre spécifique. L'ordre est indépendant de la valeur. Une liste est un exemple.

Une collection triée signifie que non seulement la collection a un ordre, mais que l'ordre dépend de la valeur de l'élément. Un SortedSet est un exemple.

En revanche, une collection sans n'importe quel ordre peut conserver les éléments dans n'importe quel ordre. Un ensemble est un exemple.

88voto

nos Points 102226

Une collection ordonnée conserve l'ordre des éléments en fonction de la séquence dans laquelle vous avez placé des éléments / supprimez-les de la collection.

Une collection triée conserve les éléments triés en fonction de critères de tri.

24voto

Steve Jessop Points 166970

Java utilise "collection ordonnée" pour signifier une collection de Liste, où (contrairement à HashSet), la collection se souvient de quel ordre les éléments sont censés être. Ainsi, les éléments peuvent être ajoutés à la collection, à un "lieu" de l'ordre.

Java utilise le "classement" pour signifier une collection comme SortedSet, où (contrairement à la Liste), l'ordre de l'itérateur traverse la collection est en conformité avec un certain Comparateur ou l'ordre naturel des éléments.

Donc, la différence est de savoir si la commande dépend de la valeur ("triés"), ou est une propriété que les éléments ont, indépendamment de leur valeur ("ordre").

14voto

Michael Borgwardt Points 181658

Oui, si les concepts sont similaires.

List est une collection ordonnée: chaque élément est muni d'un index, ce qui constitue un ordonnancement des éléments, mais généralement pas liés à la propriété des éléments eux-mêmes.

SortedMap et SortedSet sont des collections triées, ce qui signifie que l'itération à travers la collection qui va arriver dans une séquence qui est dérivée à partir des éléments eux-mêmes. Par exemple, si vous avez un SortedSet<String> puis les Cordes vont être triés selon le vocabulaire de l'ordre de tri.

Une Collection ordonnée peut être triée, mais ne devrait pas l'être (par exemple, après l'aide d' Collections.sort()) lorsque l'externe de la commande est identique avec les éléments " ordre de tri. Une collection triée est toujours implicitement commandé (c'est à dire il y a toujours un "premier" élément, et c'est toujours la même aussi longtemps que vous n'avez pas ajouter un autre, plus petit).

2voto

Yishai Points 42417

Triés impliquerait de commande selon une mise en œuvre de Comparable ou de Comparaison. Commandé impliquerait que c'est suite à l'ordre d'insertion ou une autre définition de l'ordre qui est cohérente et définie, mais sinon arbitraire.

Donc une liste de chaînes de caractères doit être trié selon la Chaîne.méthode compareTo. Une liste peut contenir une liste de chaînes de caractères insérés dans un ordre arbitraire, mais que l'ordre sera toujours le même.

Bien sûr, il existe des méthodes sur les Collections de la classe de tri d'une liste.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X