IComparator Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Funzione di confronto, che impone un ordinamento totale per alcune raccolte di oggetti.
[Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface IComparator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type IComparator = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Derivato
- Attributi
- Implementazioni
Commenti
Funzione di confronto, che impone un ordinamento totale per alcune raccolte di oggetti. I comparatori possono essere passati a un metodo di ordinamento (ad esempio Collections#sort(List,Comparator) Collections.sort
o Arrays#sort(Object[],Comparator) Arrays.sort
) per consentire un controllo preciso sull'ordinamento. I comparatori possono essere usati anche per controllare l'ordine di determinate strutture di dati (ad esempio set ordinati SortedSet o mappe ordinate SortedMap) o per fornire un ordinamento per raccolte di oggetti che non dispongono di un ordinamento naturale paragonabile.
L'ordinamento imposto da un comparatore c
su un set di elementi S
viene detto coerente con uguale a se e solo se c.compare(e1, e2)==0
ha lo stesso valore booleano di e1.equals(e2)
ogni e1
e e2
in S
.
È consigliabile prestare attenzione quando si usa un comparatore in grado di imporre un ordinamento incoerente con uguale all'ordinamento di un set ordinato (o mappa ordinata). Si supponga che un set ordinato (o una mappa ordinata) con un confronto c
esplicito venga usato con elementi (o chiavi) disegnati da un set S
. Se l'ordinamento imposto da c
su S
è incoerente con uguale, il set ordinato (o mappa ordinata) si comporterà "stranamente". In particolare, il set ordinato (o la mappa ordinata) viola il contratto generale per set (o mappa), definito in termini di equals
.
Si supponga, ad esempio, di aggiungere due elementi a
e di conseguenza (a.equals(b) && c.compare(a, b) != 0)
a un oggetto vuoto TreeSet
con il confronto c
b
. La seconda add
operazione restituirà true (e la dimensione del set di alberi aumenterà) perché a
e b
non sono equivalenti dal punto di vista del set di alberi, anche se ciò è contrario alla specifica del Set#add Set.add
metodo.
Nota: in genere è consigliabile che i comparatori implementino anche java.io.Serializable
, perché possono essere usati come metodi di ordinamento nelle strutture di dati serializzabili (ad esempio TreeSet
, TreeMap
). Affinché la struttura dei dati venga serializzata correttamente, il comparatore (se specificato) deve implementare Serializable
.
Per l'inclinazione matematica, la relazione che definisce l'ordinamento imposto che un determinato comparatore c
impone su un determinato set di oggetti S
è:
{(x, y) such that c.compare(x, y) <= 0}.
Il quoziente per questo ordine totale è:
{(x, y) such that c.compare(x, y) == 0}.
Segue immediatamente dal contratto per compare
che il quoziente è una relazione di equivalenza su S
e che l'ordinamento imposto è un ordine totale per S
. Quando si dice che l'ordinamento imposto da c
su S
è coerente con uguale, si intende che il quoziente per l'ordinamento è la relazione di equivalenza definita dai metodi degli Object#equals(Object) equals(Object)
oggetti:
{(x, y) such that x.equals(y)}.
In altre parole, quando l'ordinamento imposto è coerente con uguale, le classi di equivalenza definite dalla relazione di equivalenza del equals
metodo e le classi di equivalenza definite dal quoziente del compare
metodo sono uguali.
A differenza di Comparable
, un comparatore può facoltativamente consentire il confronto di argomenti Null, mantenendo i requisiti per una relazione di equivalenza.
Questa interfaccia è un membro di Java Collections Framework.
Aggiunta nella versione 1.2.
Documentazione java per java.util.Comparator
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Proprietà
Handle |
Ottiene il valore JNI dell'oggetto Android sottostante. (Ereditato da IJavaObject) |
JniIdentityHashCode |
Restituisce il valore di |
JniManagedPeerState |
Stato del peer gestito. (Ereditato da IJavaPeerable) |
JniPeerMembers |
Supporto per l'accesso ai membri e la chiamata. (Ereditato da IJavaPeerable) |
PeerReference |
Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto Java di cui è stato eseguito il wrapping. (Ereditato da IJavaPeerable) |
Metodi
Compare(Object, Object) |
Confronta i due argomenti per l'ordine. |
Comparing(IFunction) |
Accetta una funzione che estrae una |
Comparing(IFunction, IComparator) |
Accetta una funzione che estrae una chiave di ordinamento da un tipo |
ComparingDouble(IToDoubleFunction) |
Accetta una funzione che estrae una |
ComparingInt(IToIntFunction) |
Accetta una funzione che estrae una |
ComparingLong(IToLongFunction) |
Accetta una funzione che estrae una |
Disposed() |
Chiamato quando l'istanza è stata eliminata. (Ereditato da IJavaPeerable) |
DisposeUnlessReferenced() |
Se non sono presenti riferimenti in sospeso a questa istanza, chiama |
Equals(Object) |
Indica se un altro oggetto è " uguale a " questo comparatore. |
Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
NaturalOrder() |
Restituisce un comparatore che confronta gli |
NullsFirst(IComparator) |
Restituisce un confronto null-friendly che considera |
NullsLast(IComparator) |
Restituisce un confronto null-friendly che considera |
Reversed() |
Restituisce un comparatore che impone l'ordinamento inverso di questo confronto. |
ReverseOrder() |
Restituisce un comparatore che impone il contrario dell'ordinamento <><naturale em>. |
SetJniIdentityHashCode(Int32) |
Impostare il valore restituito da |
SetJniManagedPeerState(JniManagedPeerStates) |
Funzione di confronto, che impone un ordinamento totale per alcune raccolte di oggetti. (Ereditato da IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
ThenComparing(IComparator) |
Restituisce un confronto ordine lessicografico con un altro comparatore. |
ThenComparing(IFunction) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una |
ThenComparing(IFunction, IComparator) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una chiave da confrontare con l'oggetto specificato |
ThenComparingDouble(IToDoubleFunction) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una |
ThenComparingInt(IToIntFunction) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una |
ThenComparingLong(IToLongFunction) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una |
UnregisterFromRuntime() |
Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue . (Ereditato da IJavaPeerable) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Funzione di confronto, che impone un ordinamento totale per alcune raccolte di oggetti. |
GetJniTypeName(IJavaPeerable) |
Funzione di confronto, che impone un ordinamento totale per alcune raccolte di oggetti. |