Freigeben über


IComparator Schnittstelle

Definition

Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt.

[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
Abgeleitet
Attribute
Implementiert

Hinweise

Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt. Vergleiche können an eine Sortiermethode (z Collections#sort(List,Comparator) Collections.sort . B. oder Arrays#sort(Object[],Comparator) Arrays.sort) übergeben werden, um eine präzise Kontrolle über die Sortierreihenfolge zu ermöglichen. Vergleiche können auch verwendet werden, um die Reihenfolge bestimmter Datenstrukturen (z. B. sortierte Sätze oder sortierte SortedMap-Zuordnungen) zu steuern oder eine Sortierreihenfolge für Auflistungen von Objekten bereitzustellen, die keine vergleichbare natürliche Sortierung aufweisen.

Die Reihenfolge, die von einem Vergleichszeichen c für eine Gruppe von Elementen S auferlegt wird, ist mit gleich, wenn und nur, wenn c.compare(e1, e2)==0 derselbe boolesche Wert wie e1.equals(e2) für jedes e1 und e2 in S.

Vorsicht sollte bei Verwendung eines Vergleichsgebers ausgeführt werden, der eine Sortierung inkonsistent mit der Reihenfolge eines sortierten Satzes (oder einer sortierten Karte) anordnen kann. Angenommen, ein sortierter Satz (oder eine sortierte Karte) mit einem expliziten Vergleich c wird mit Elementen (oder Tasten) verwendet, die aus einer Gruppe Sgezeichnet werden. Wenn die sortierung, die von c "on S " auferlegt wird, gleich ist, verhält sich der sortierte Satz (oder die sortierte Karte) "seltsam". Insbesondere wird der sortierte Satz (oder die sortierte Karte) gegen den allgemeinen Vertrag für Set (oder Karte) verstoßen, der in Bezug auf equals.

Angenommen, man fügt zwei Elemente a hinzu und b fügt eine leere (a.equals(b) && c.compare(a, b) != 0)TreeSet mit Vergleichszeichen chinzu. Der zweite add Vorgang gibt "true" (und die Größe des Baumsatzes wird vergrößert) zurück, da a er b aus Sicht des Baumsatzes nicht gleichwertig ist, obwohl dies der Spezifikation der Set#add Set.add Methode widerspricht.

Hinweis: Im Allgemeinen empfiehlt es sich, Vergleiche zu implementieren java.io.Serializable, da sie als Sortiermethoden in serialisierbaren Datenstrukturen (z TreeSet. B. , TreeMap) verwendet werden können. Damit die Datenstruktur erfolgreich serialisiert werden kann, muss der Vergleichsator (sofern angegeben) implementiert werden Serializable.

Für die mathematisch geneigte Beziehung, die die auferlegte Reihenfolge definiert, die ein bestimmter Vergleichssatz c für eine bestimmte Gruppe von Objekten S aufzwingt, lautet:

{(x, y) such that c.compare(x, y) &lt;= 0}.

Der Quotient für diese Gesamtbestellung lautet:

{(x, y) such that c.compare(x, y) == 0}.

Es folgt unmittelbar aus dem Vertrag dafürcompare, dass der Quotient eine Äquivalenzbeziehung S ist und dass die auferlegte Bestellung eine Gesamtbestellung ist.S Wenn wir sagen, dass die sortierung, die von c on S auferlegt wird, gleich ist, meinen wir, dass der Quotient für die Sortierung die Äquivalenzbeziehung ist, die durch die Methode(n) Object#equals(Object) equals(Object) der Objekte definiert wird:

{(x, y) such that x.equals(y)}.

Anders ausgedrückt: Wenn die auferlegte Sortierung gleich ist, sind die Äquivalenzklassen, die durch die Äquivalenzbeziehung der equals Methode und die durch den Quotienten der compare Methode definierten Äquivalenzklassen definiert sind, identisch.

Im Gegensatz dazu Comparablekann ein Vergleich optional einen Vergleich von Nullargumenten zulassen und gleichzeitig die Anforderungen für eine Äquivalenzbeziehung beibehalten.

Diese Schnittstelle ist ein Mitglied des Java Collections Framework.

In 1.2 hinzugefügt.

Java-Dokumentation für java.util.Comparator.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java-Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Compare(Object, Object)

Vergleicht die beiden Argumente für die Reihenfolge.

Comparing(IFunction)

Akzeptiert eine Funktion, die einen java.lang.Comparable Comparable Sortierschlüssel aus einem Typ Textrahiert, und gibt einen Comparator<T> Wert zurück, der anhand dieses Sortierschlüssels verglichen wird.

Comparing(IFunction, IComparator)

Akzeptiert eine Funktion, die einen Sortierschlüssel aus einem Typ Textrahiert, und gibt einen Comparator<T> Wert zurück, der anhand dieses Sortierschlüssels mithilfe des angegebenen ComparatorSchlüssels verglichen wird.

ComparingDouble(IToDoubleFunction)

Akzeptiert eine Funktion, die einen double Sortierschlüssel aus einem Typ Textrahiert, und gibt einen Comparator<T> Wert zurück, der anhand dieses Sortierschlüssels verglichen wird.

ComparingInt(IToIntFunction)

Akzeptiert eine Funktion, die einen int Sortierschlüssel aus einem Typ Textrahiert, und gibt einen Comparator<T> Wert zurück, der mit diesem Sortierschlüssel verglichen wird.

ComparingLong(IToLongFunction)

Akzeptiert eine Funktion, die einen long Sortierschlüssel aus einem Typ Textrahiert, und gibt einen Comparator<T> Wert zurück, der anhand dieses Sortierschlüssels verglichen wird.

Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Equals(Object)

Gibt an, ob ein anderes Objekt " ist. gleich " dieser Vergleichsator.

Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
NaturalOrder()

Gibt einen Vergleichsator zurück, der Objekte in natürlicher Reihenfolge vergleicht Comparable .

NullsFirst(IComparator)

Gibt einen nullfreundlichen Vergleichswert zurück, der als null kleiner als null betrachtet wird.

NullsLast(IComparator)

Gibt einen nullfreundlichen Vergleich zurück, null der als größer als null betrachtet wird.

Reversed()

Gibt einen Vergleichsator zurück, der die umgekehrte Reihenfolge dieses Vergleichszeichens aufzwingt.

ReverseOrder()

Gibt einen Vergleichsator zurück, der die Umgekehrte der <natürlichen>Reihenfolge</em> aufzwingt.

SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
ThenComparing(IComparator)

Gibt einen lexikographischen Vergleichsator mit einem anderen Vergleich zurück.

ThenComparing(IFunction)

Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen Comparable Sortierschlüssel extrahiert.

ThenComparing(IFunction, IComparator)

Gibt einen lexikographischen Vergleichsator mit einer Funktion zurück, die einen Schlüssel extrahiert, der mit dem angegebenen vergleicht Comparatorwerden soll.

ThenComparingDouble(IToDoubleFunction)

Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen double Sortierschlüssel extrahiert.

ThenComparingInt(IToIntFunction)

Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen int Sortierschlüssel extrahiert.

ThenComparingLong(IToLongFunction)

Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen long Sortierschlüssel extrahiert.

UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt.

GetJniTypeName(IJavaPeerable)

Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt.

Gilt für: