¿Cuál es la diferencia entre una colección ordenada y una ordenada?

132

¿Hay alguna diferencia entre una colección ordenada y una ordenada ?

Johanna
fuente
1
No tome las respuestas aquí demasiado literalmente. Si bien ese es el tipo de definición ampliamente entendida y reconocida, no es la definición de facto en terminología informática. Por ejemplo, en .NET, la interfaz para enumerable "ordenada" se llama IOrderedEnumerable (lo curioso es que no es muy consistente en .NET. Se llama un diccionario de "orden de inserción" en .NET OrderedDictionaryque algunos creen que es un nombre inapropiado en comparación con decir, IndexedDictionary) . Sí, en el mundo de Java (principalmente en otros lugares también) significan lo que tienes en las respuestas. Para más información ver aquí .
nawfal
Si alguna instancia de implementación tiene un nombre incorrecto, no hay razón para propagar su error. Es una buena pregunta, con buenas respuestas. Use nombres adecuados: ayuda a reducir la confusión para todos, incluido usted.
foo

Respuestas:

166

Una colección ordenada significa que los elementos de la colección tienen un orden específico. El orden es independiente del valor. Una lista es un ejemplo.

Una colección ordenada significa que no solo la colección tiene orden, sino que el orden depende del valor del elemento. Un conjunto ordenado es un ejemplo.

Por el contrario, una colección sin ningún orden puede mantener los elementos en cualquier orden. Un conjunto es un ejemplo.

g.
fuente
1
¿La cola de prioridad es una colección ordenada?
intercambio excesivo el
@overexchange Dadas las definiciones anteriores, una cola prioritaria sería una colección ordenada en la mayoría de los casos, ya que la prioridad casi siempre se define como una propiedad de los elementos en la cola.
cdeszaq
Si SortedSet ha heredado del conjunto y está teniendo una relación es-un con él, entonces ¿cómo puede u decir Set es sin fin
xpioneer
79

Una colección ordenada mantiene el orden de los elementos en función de la secuencia en la que coloca / elimina elementos de la colección.

Una colección ordenada mantiene los elementos ordenados según un criterio de clasificación.

nos
fuente
18

Java usa "colección ordenada" para referirse a una colección como List, donde (a diferencia de HashSet), la colección recuerda en qué orden se supone que están los elementos. Por lo tanto, los elementos se pueden agregar a la colección en un "lugar" particular en el orden .

Java usa "colección ordenada" para referirse a una colección como SortedSet, donde (a diferencia de List), el orden en que el iterador atraviesa la colección está de acuerdo con un Comparador especificado o el orden natural de los elementos.

Entonces, la diferencia es si el orden depende de los valores ("ordenados") o si es una propiedad que los elementos tienen independientemente de su valor ("ordenados").

Steve Jessop
fuente
1
Buena respuesta y +1 por mencionar "Java". Es un poco la definición aceptada en la mayoría de los lugares también, como OrderedDicten Python. Pero en .NET se llama a la interfaz para enumerable "ordenado" IOrderedEnumerable. Entonces eso depende. Solo digo ..
nawfal
9

Sí, aunque los conceptos son similares.

List es una colección ordenada: cada elemento tiene un índice, que forma un orden de los elementos, pero generalmente no está relacionado con ninguna propiedad de los elementos mismos.

SortedMapy SortedSetson colecciones ordenadas, lo que significa que la iteración a través de la colección ocurrirá en una secuencia derivada de los elementos mismos. Por ejemplo, si tiene un SortedSet<String>, las Cadenas se ordenarán según el orden de clasificación lexicográfico.

Una colección ordenada se puede ordenar, pero no es necesario (p. Ej., Después de usarla Collections.sort()) cuando el orden externo es idéntico al orden de los elementos. Una colección ordenada siempre está ordenada implícitamente (es decir, siempre hay un "primer" elemento, y siempre es el mismo siempre que no agregue otro elemento más pequeño).

Michael Borgwardt
fuente
5

Una colección ordenada es una colección que realiza un seguimiento de un índice consecutivo en el que se inserta cada elemento.

Una colección ordenada es una colección ordenada cuando el orden depende adicionalmente del valor del elemento que se va a insertar, a lo largo del uso de la interfaz Comparable que le proporciona un método para definir los criterios de clasificación.

Espero que pueda ayudar.

gvalenncia
fuente
2

Ordenar implicaría ordenar de acuerdo con una implementación de Comparable o Comparator. Ordenado implicaría que está siguiendo el orden de inserción o alguna otra definición de orden que sea consistente y definida, pero por lo demás arbitraria.

Entonces, una lista ordenada de cadenas se ordenaría de acuerdo con el método String.compareTo. Una lista puede contener una lista de cadenas insertadas en un orden arbitrario, pero ese orden siempre será el mismo.

Por supuesto, hay métodos en la clase Colecciones para ordenar una lista.

Yishai
fuente
1

Una colección ordenada generalmente significa que los elementos se ordenan del valor mínimo al valor máximo o viceversa, dependiendo de los atributos de los elementos en los que funcionan los algoritmos.

Para las colecciones de números enteros, el orden puede ser del número mínimo al número máximo para una colección de personas, puede estar dividido por la altura de las personas o el peso de las personas, etc.

Cuando se habla de orden, generalmente significa el orden de inserción. El orden puede cambiarse después de ordenar

sotondolphin
fuente
0

Colección ordenada frente a colección ordenada

1. Colección ordenada

Una colección ordenada es ordenar una colección utilizando las funciones de ordenación proporcionadas por el marco de colecciones de Java. La clasificación se produce en la memoria de JVM que ejecuta Hibernate, después de leer los datos de la base de datos utilizando el comparador Java.

Si su colección no es grande, será una forma más eficiente de ordenarla. Como sucede en la memoria jvm, puede arrojar un error de falta de memoria.

2. Recogida de pedidos

La colección de pedidos está ordenando una colección especificando la cláusula de orden en la consulta para ordenar esta colección cuando se recupera. Si su colección es muy grande, será una forma más eficiente de ordenarla. Es rápido en comparación con la colección ordenada.

hardikhirapara
fuente