IComparator Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 S
gezeichnet 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 c
hinzu. 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) <= 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 Comparable
kann 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 |
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 |
Comparing(IFunction, IComparator) |
Akzeptiert eine Funktion, die einen Sortierschlüssel aus einem Typ |
ComparingDouble(IToDoubleFunction) |
Akzeptiert eine Funktion, die einen |
ComparingInt(IToIntFunction) |
Akzeptiert eine Funktion, die einen |
ComparingLong(IToLongFunction) |
Akzeptiert eine Funktion, die einen |
Disposed() |
Wird aufgerufen, wenn die Instanz verworfen wurde. (Geerbt von IJavaPeerable) |
DisposeUnlessReferenced() |
Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen |
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 |
NullsFirst(IComparator) |
Gibt einen nullfreundlichen Vergleichswert zurück, der als |
NullsLast(IComparator) |
Gibt einen nullfreundlichen Vergleich zurück, |
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 |
SetJniManagedPeerState(JniManagedPeerStates) |
Eine Vergleichsfunktion, die eine Gesamtaufordnung für eine Sammlung von Objekten aufzwingt. (Geerbt von IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Legen Sie den von |
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 |
ThenComparing(IFunction, IComparator) |
Gibt einen lexikographischen Vergleichsator mit einer Funktion zurück, die einen Schlüssel extrahiert, der mit dem angegebenen vergleicht |
ThenComparingDouble(IToDoubleFunction) |
Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen |
ThenComparingInt(IToIntFunction) |
Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen |
ThenComparingLong(IToLongFunction) |
Gibt einen lexikographischen Vergleich mit einer Funktion zurück, die einen |
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. |