C'è qualche differenza tra una ordinata ed una ordinata raccolta?
C'è qualche differenza tra una ordinata ed una ordinata raccolta?
Risposte:
Una raccolta ordinata significa che gli elementi della raccolta hanno un ordine specifico. L'ordine è indipendente dal valore. Una lista è un esempio.
Una raccolta ordinata significa che non solo la raccolta ha un ordine, ma l'ordine dipende dal valore dell'elemento. Un SortedSet è un esempio.
Al contrario, una raccolta senza alcun ordine può mantenere gli elementi in qualsiasi ordine. Un set è un esempio.
Java usa "raccolta ordinata" per indicare una raccolta come List, dove (a differenza di HashSet), la raccolta ricorda in quale ordine dovrebbero trovarsi gli elementi. Quindi gli elementi possono essere aggiunti alla raccolta in un particolare "luogo" nell'ordine .
Java utilizza "raccolta ordinata" per indicare una raccolta come SortedSet, dove (diversamente dall'elenco), l'ordine in cui l'iteratore attraversa la raccolta è conforme a un comparatore specificato o all'ordine naturale degli elementi.
Quindi la differenza è se l'ordinamento dipende dai valori ("ordinati") o è una proprietà che gli elementi hanno indipendentemente dal loro valore ("ordinato").
OrderedDict
in Python. Ma in .NET viene chiamata l'interfaccia per l'enumerabile "ordinato" IOrderedEnumerable
. Quindi dipende.
Sì, anche se i concetti sono simili.
List
è una raccolta ordinata: ogni elemento ha un indice, che forma un ordinamento degli elementi, ma di solito non è correlato a nessuna proprietà degli elementi stessi.
SortedMap
e SortedSet
sono raccolte ordinate, il che significa che l'iterazione attraverso la raccolta avverrà in una sequenza derivata dagli elementi stessi. Ad esempio, se si dispone di un, SortedSet<String>
le stringhe verranno ordinate in base all'ordinamento lessicografico.
Una raccolta ordinata può essere ordinata ma non deve essere (ad es. Dopo l'uso Collections.sort()
) quando l'ordinamento esterno è identico all'ordinamento degli elementi. Una raccolta ordinata viene sempre ordinata in modo implicito (ovvero esiste sempre un "primo" elemento, ed è sempre la stessa, purché non ne si aggiunga un'altra più piccola).
Una raccolta ordinata è una raccolta che tiene traccia di un indice consecutivo in cui è inserito ogni elemento.
Una raccolta ordinata è una raccolta ordinata quando l'ordine dipende ulteriormente dal valore dell'elemento da inserire, durante l'uso dell'interfaccia Comparable che fornisce un metodo per definire i criteri di ordinamento.
Spero possa essere d'aiuto.
Ordinati implicherebbe l'ordinamento secondo un'implementazione di Comparable o Comparator. Ordinato implicherebbe che sta seguendo l'ordine di inserimento o qualche altra definizione di ordine coerente e definita, ma altrimenti arbitraria.
Quindi un elenco ordinato di stringhe verrebbe ordinato secondo il metodo String.compareTo. Un elenco potrebbe contenere un elenco di stringhe inserite in ordine arbitrario, ma tale ordine rimarrà sempre lo stesso.
Naturalmente ci sono metodi nella classe Collezioni per ordinare un elenco.
Una raccolta ordinata di solito indica che gli elementi sono ordinati dal valore minimo al valore massimo o viceversa a seconda degli attributi degli elementi su cui funzionano gli algoritmi.
per le raccolte di un numero intero, l'ordinamento può essere compreso tra il numero minimo e il numero massimo per una raccolta di persone, può essere influenzato dall'altezza delle persone o dal peso delle persone, ecc.
Quando si parla di ordine, di solito significa l'ordine di inserimento. L'ordine può essere modificato dopo l'ordinamento
Raccolta ordinata vs. raccolta ordinata
1. Raccolta ordinata
Una raccolta ordinata sta ordinando una raccolta utilizzando le funzionalità di ordinamento fornite dal framework delle raccolte Java. L'ordinamento avviene nella memoria di JVM che esegue Hibernate, dopo che i dati sono stati letti dal database utilizzando java comparator.
Se la tua collezione non è grande, sarà un modo più efficiente per ordinarla. Come accade nella memoria jvm, può generare un errore di memoria esaurita.
2. Ordine di raccolta
La raccolta ordini sta ordinando una raccolta specificando la clausola order-by nella query per ordinare questa raccolta al momento del recupero. Se la tua collezione è molto grande, sarà un modo più efficiente per ordinarla. È veloce rispetto alla raccolta ordinata.
IOrderedEnumerable
(cosa divertente è che non è molto coerente in .NET. Viene chiamato un dizionario di "ordine di inserzione" in .NETOrderedDictionary
che alcuni credono sia un termine improprio rispetto a dire,IndexedDictionary
) . Sì, nel mondo Java (soprattutto altrove) significano ciò che hai nelle risposte. Per di più vedi qui .