Condividi tramite


IComparator Interfaccia

Definizione

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 cb . 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) &lt;= 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 Se 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 java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
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 java.lang.Comparable Comparable chiave di ordinamento da un tipo Te restituisce un Comparator<T> oggetto che confronta in base a tale chiave di ordinamento.

Comparing(IFunction, IComparator)

Accetta una funzione che estrae una chiave di ordinamento da un tipo Te restituisce un Comparator<T> oggetto che confronta in base a tale chiave di ordinamento usando l'oggetto specificato Comparator.

ComparingDouble(IToDoubleFunction)

Accetta una funzione che estrae una double chiave di ordinamento da un tipo Te restituisce un Comparator<T> oggetto che confronta in base a tale chiave di ordinamento.

ComparingInt(IToIntFunction)

Accetta una funzione che estrae una int chiave di ordinamento da un tipo Te restituisce un Comparator<T> oggetto che confronta in base a tale chiave di ordinamento.

ComparingLong(IToLongFunction)

Accetta una funzione che estrae una long chiave di ordinamento da un tipo Te restituisce un Comparator<T> oggetto che confronta in base a tale chiave di ordinamento.

Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
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 Comparable oggetti in ordine naturale.

NullsFirst(IComparator)

Restituisce un confronto null-friendly che considera null minore di null.

NullsLast(IComparator)

Restituisce un confronto null-friendly che considera null maggiore di non Null.

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 JniIdentityHashCode.

(Ereditato da IJavaPeerable)
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 PeerReference.

(Ereditato da IJavaPeerable)
ThenComparing(IComparator)

Restituisce un confronto ordine lessicografico con un altro comparatore.

ThenComparing(IFunction)

Restituisce un confronto ordine lessicografico con una funzione che estrae una Comparable chiave di ordinamento.

ThenComparing(IFunction, IComparator)

Restituisce un confronto ordine lessicografico con una funzione che estrae una chiave da confrontare con l'oggetto specificato Comparator.

ThenComparingDouble(IToDoubleFunction)

Restituisce un confronto ordine lessicografico con una funzione che estrae una double chiave di ordinamento.

ThenComparingInt(IToIntFunction)

Restituisce un confronto ordine lessicografico con una funzione che estrae una int chiave di ordinamento.

ThenComparingLong(IToLongFunction)

Restituisce un confronto ordine lessicografico con una funzione che estrae una long chiave di ordinamento.

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.

Si applica a