¿Hay alguna diferencia entre una colección ordenada y una ordenada ?
¿Hay alguna diferencia entre una colección ordenada y una ordenada ?
Respuestas:
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.
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").
OrderedDict
en Python. Pero en .NET se llama a la interfaz para enumerable "ordenado" IOrderedEnumerable
. Entonces eso depende. Solo digo ..
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.
SortedMap
y SortedSet
son 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).
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.
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.
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
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.
IOrderedEnumerable
(lo curioso es que no es muy consistente en .NET. Se llama un diccionario de "orden de inserción" en .NETOrderedDictionary
que 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í .