Existe-t-il une différence entre une collection triée et une collection ordonnée ?
Réponses
Trop de publicités?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.
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").
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).
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.