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 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 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 confrontitori implementino java.io.Serializable
anche , 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) <= 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 S
e 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 |
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 è &virgolette; uguale a&virgolette; questo confronto. |
Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
NaturalOrder() |
Restituisce un confronto che confronta gli |
NullsFirst(IComparator) |
Restituisce un confronto descrittivo null che considera |
NullsLast(IComparator) |
Restituisce un confronto descrittivo null che considera |
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 |
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 confronto. |
ThenComparing(IFunction) |
Restituisce un confronto lessicografico-order 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 lessicografico-order con una funzione che estrae una |
ThenComparingInt(IToIntFunction) |
Restituisce un confronto ordine lessicografico con una funzione che estrae una |
ThenComparingLong(IToLongFunction) |
Restituisce un confronto lessicografico-order 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 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. |