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 le raccolte di oggetti che non dispongono di un ordinamento naturale paragonabile.

L'ordinamento imposto da un confronto 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 utilizza un confronto in grado di imporre un ordinamento incoerente con uguale all'ordinamento di un set ordinato (o mappa ordinata). Si supponga di usare un set ordinato (o mappa ordinata) con un confronto c esplicito con elementi (o chiavi) disegnati da un set S. Se l'ordinamento imposto da c on S è incoerente con uguale, il set ordinato (o mappa ordinata) si comporterà "stranamente". In particolare, il set ordinato (o mappa ordinata) viola il contratto generale per il set (o la 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 confrontitori implementino java.io.Serializableanche , perché possono essere usati come metodi di ordinamento in strutture di dati serializzabili (ad esempio TreeSet, TreeMap). Affinché la struttura dei dati venga serializzata correttamente, il confronto (se specificato) deve implementare Serializable.

Per l'inclinazione matematica, la relazione che definisce l'ordinamento imposto che un determinato confronto c impone a 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 il quale il quoziente è una relazione di equivalenza su Se che l'ordinamento imposto è un ordine totale su S. Quando si dice che l'ordinamento imposto da c on 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 confronto può facoltativamente consentire il confronto di argomenti Null, mantenendo al tempo stesso 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 Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

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 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 con 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 tramite tale chiave di ordinamento utilizzando 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 con 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 con 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 con 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 è &virgolette; uguale a&virgolette; questo confronto.

Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
NaturalOrder()

Restituisce un confronto che confronta gli Comparable oggetti in ordine naturale.

NullsFirst(IComparator)

Restituisce un confronto descrittivo null che considera null minore di null.

NullsLast(IComparator)

Restituisce un confronto descrittivo null che considera null maggiore di non Null.

Reversed()

Restituisce un confronto che impone l'ordinamento inverso di questo confronto.

ReverseOrder()

Restituisce un confronto 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 confronto.

ThenComparing(IFunction)

Restituisce un confronto lessicografico-order 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 lessicografico-order 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 lessicografico-order 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 verificato 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