Existe alguma diferença entre um ordenada e um ordenado coleção?
Existe alguma diferença entre um ordenada e um ordenado coleção?
Respostas:
Uma coleção ordenada significa que os elementos da coleção têm uma ordem específica. A ordem é independente do valor. Uma lista é um exemplo.
Uma coleção classificada significa que não apenas a coleção tem ordem, mas a ordem depende do valor do elemento. Um SortedSet é um exemplo.
Por outro lado, uma coleção sem qualquer ordem pode manter os elementos em qualquer ordem. Um conjunto é um exemplo.
Java usa "coleção ordenada" para significar uma coleção como List, onde (diferentemente do HashSet), a coleção lembra em que ordem os elementos devem estar. Portanto, os elementos podem ser adicionados à coleção em um "local" específico na ordem .
Java usa "coleção classificada" para significar uma coleção como SortedSet, onde (diferentemente da Lista), a ordem pela qual o iterador percorre a coleção está de acordo com um Comparador especificado ou a ordem natural dos elementos.
Portanto, a diferença é se a ordem depende dos valores ("classificados") ou se é uma propriedade que os elementos possuem independentemente de seu valor ("ordenados").
OrderedDict
em python. Mas no .NET a interface para enumerável "classificada" é chamada IOrderedEnumerable
. Então depende. Só
Sim, embora os conceitos sejam semelhantes.
List
é uma coleção ordenada: cada elemento possui um índice, que forma uma ordem dos elementos, mas geralmente não está relacionada a nenhuma propriedade dos próprios elementos.
SortedMap
e SortedSet
são coleções classificadas, o que significa que a iteração através da coleção ocorrerá em uma sequência derivada dos próprios elementos. Por exemplo, se você tiver um SortedSet<String>
, as Strings serão classificadas de acordo com a ordem de classificação lexicográfica.
Uma coleção ordenada pode ser classificada, mas não precisa ser (por exemplo, após o uso Collections.sort()
) quando a ordem externa é idêntica à ordem de classificação dos elementos. Uma coleção ordenada é sempre implicitamente ordenada (ou seja, sempre existe um elemento "primeiro" e é sempre o mesmo, desde que você não adicione outra, menor).
Uma coleção ordenada é uma coleção que monitora um índice consecutivo no qual cada elemento é inserido.
Uma coleção ordenada é uma coleção ordenada quando a ordem depende adicionalmente do valor do elemento a ser inserido, durante o uso da interface Comparável, que fornece um método para definir os critérios de classificação.
Espero que possa ajudar.
A classificação implicaria a encomenda de acordo com uma implementação do Comparable ou Comparator. O pedido implicaria que ele está seguindo o pedido de inserção ou alguma outra definição de pedido consistente e definida, mas arbitrária.
Portanto, uma lista classificada de strings seria classificada de acordo com o método String.compareTo. Uma lista pode conter uma lista de cadeias inseridas em ordem arbitrária, mas essa ordem sempre permanecerá a mesma.
Obviamente, existem métodos na classe Coleções para classificar uma lista.
Uma coleção classificada geralmente significa que os elementos são classificados do valor mínimo ao valor máximo ou vice-versa, dependendo do (s) atributo (s) dos elementos nos quais os algoritmos funcionam.
para coleções interger, o ordenado pode ser de número mínimo para número máximo para uma coleção de pessoas, pode ser afetado pela altura das pessoas ou pelo peso das pessoas, etc.
Quando se fala em ordem, geralmente significa a ordem de inserção. A ordem pode ser alterada após a classificação
Coleção Ordenada vs. Coleção Ordenada
1. Coleção ordenada
Uma coleção classificada está classificando uma coleção utilizando os recursos de classificação fornecidos pela estrutura de coleções Java. A classificação ocorre na memória da JVM que executa o Hibernate, após os dados serem lidos no banco de dados usando o comparador java.
Se sua coleção não for grande, será uma maneira mais eficiente de classificá-la. Como acontece na memória jvm, pode gerar um erro de falta de memória.
2. Coleta de pedidos
A coleção de pedidos está classificando uma coleção especificando a cláusula order-by na consulta para classificar essa coleção durante a recuperação. Se sua coleção for muito grande, será uma maneira mais eficiente de classificá-la. É rápido em comparação com a coleção classificada.
IOrderedEnumerable
(o engraçado é que não é muito consistente no .NET. Uma "ordem de inserção" no dicionário do .NET é chamada,OrderedDictionary
que alguns acreditam ser um nome impróprio em comparação com,IndexedDictionary
) . Sim, no mundo java (principalmente em outros lugares também), eles significam o que você tem nas respostas. Para mais, veja aqui .