Partager via


IComparator Interface

Définition

Fonction de comparaison, qui impose un ordre total sur une collection d’objets.

[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
Dérivé
Attributs
Implémente

Remarques

Fonction de comparaison, qui impose un ordre total sur une collection d’objets. Les comparateurs peuvent être passés à une méthode de tri (par exemple Collections#sort(List,Comparator) Collections.sortArrays#sort(Object[],Comparator) Arrays.sort) pour permettre un contrôle précis sur l’ordre de tri. Les comparateurs peuvent également être utilisés pour contrôler l’ordre de certaines structures de données (comme les jeux triés TridSet ou les cartes triées TridMap) ou pour fournir un ordre pour les collections d’objets qui n’ont pas d’ordre naturel comparable.

L’ordre imposé par un comparateur c sur un ensemble d’éléments S est considéré comme cohérent avec des valeurs égales si et seulement s’il c.compare(e1, e2)==0 a la même valeur booléenne que e1.equals(e2) pour chaque et e1e2 dans S.

La prudence doit être exercée lors de l’utilisation d’un comparateur capable d’imposer une ordonnance incohérente avec des valeurs égales à l’ordre d’un ensemble trié (ou carte triée). Supposons qu’un jeu trié (ou une carte triée) avec un comparateur c explicite est utilisé avec des éléments (ou des clés) dessinés à partir d’un ensemble S. Si l’ordre imposé par c on S est incompatible avec les égaux, l’ensemble trié (ou la carte triée) se comporte « étrangement ». En particulier, l’ensemble trié (ou carte triée) enfreint le contrat général pour l’ensemble (ou la carte), qui est défini en termes de equals.

Par exemple, supposons qu’un élément ajoute deux éléments a et b qu’à (a.equals(b) && c.compare(a, b) != 0) un élément vide TreeSet avec comparateur c. La deuxième add opération retourne true (et la taille de l’ensemble d’arborescences augmente), car a elle b n’est pas équivalente du point de vue de l’ensemble d’arborescences, même si cela est contraire à la spécification de la Set#add Set.add méthode.

Remarque : Il est généralement judicieux pour les comparateurs d’implémenter java.io.Serializableégalement, car ils peuvent être utilisés comme méthodes de classement dans des structures de données sérialisables (comme TreeSet, TreeMap). Pour que la structure de données sérialise correctement, le comparateur (s’il est fourni) doit implémenter Serializable.

Pour l’inclinaison mathématique, la relation qui définit l’ordre imposé qu’un comparateur c donné impose à un ensemble donné d’objets S est :

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

Le quotient pour cet ordre total est le suivant :

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

Il suit immédiatement du contrat pour compare que le quotient soit une relation d’équivalence sur S, et que l’ordre imposé est un ordre total sur S. Lorsque nous disons que l’ordre imposé par c on S est cohérent avec les égaux, nous entendons que le quotient pour l’ordre est la relation d’équivalence définie par la ou les méthodes des Object#equals(Object) equals(Object) objets :

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

En d’autres termes, lorsque l’ordre imposé est cohérent avec les égaux, les classes d’équivalence définies par la relation d’équivalence de la equals méthode et les classes d’équivalence définies par le quotient de la compare méthode sont identiques.

Contrairement Comparableà , un comparateur peut éventuellement autoriser la comparaison des arguments Null, tout en conservant les exigences d’une relation d’équivalence.

Cette interface est membre de Java Collections Framework.

Ajouté dans la version 1.2.

Documentation Java pour java.util.Comparator.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Propriétés

Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Compare(Object, Object)

Compare ses deux arguments pour l’ordre.

Comparing(IFunction)

Accepte une fonction qui extrait une java.lang.Comparable Comparable clé de tri à partir d’un type Tet retourne une Comparator<T> fonction qui compare par cette clé de tri.

Comparing(IFunction, IComparator)

Accepte une fonction qui extrait une clé de tri à partir d’un type Tet retourne une Comparator<T> fonction qui compare par cette clé de tri à l’aide de la clé spécifiée Comparator.

ComparingDouble(IToDoubleFunction)

Accepte une fonction qui extrait une double clé de tri à partir d’un type Tet retourne une Comparator<T> fonction qui compare par cette clé de tri.

ComparingInt(IToIntFunction)

Accepte une fonction qui extrait une int clé de tri à partir d’un type Tet retourne une Comparator<T> fonction qui compare par cette clé de tri.

ComparingLong(IToLongFunction)

Accepte une fonction qui extrait une long clé de tri à partir d’un type Tet retourne une Comparator<T> fonction qui compare par cette clé de tri.

Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Equals(Object)

Indique si un autre objet est " égal à" ce comparateur.

Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
NaturalOrder()

Retourne un comparateur qui compare les Comparable objets dans l’ordre naturel.

NullsFirst(IComparator)

Retourne un comparateur convivial null qui considère null qu’il est inférieur à non null.

NullsLast(IComparator)

Retourne un comparateur convivial null qui considère null qu’il est supérieur à non null.

Reversed()

Retourne un comparateur qui impose l’ordre inverse de ce comparateur.

ReverseOrder()

Retourne un comparateur qui impose l’inverse de l’ordre <<naturel em>/em>.

SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Fonction de comparaison, qui impose un ordre total sur une collection d’objets.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
ThenComparing(IComparator)

Retourne un comparateur de l’ordre lexicographique avec un autre comparateur.

ThenComparing(IFunction)

Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une Comparable clé de tri.

ThenComparing(IFunction, IComparator)

Retourne un comparateur de l’ordre lexicographique avec une fonction qui extrait une clé à comparer à l’ordre donné Comparator.

ThenComparingDouble(IToDoubleFunction)

Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une double clé de tri.

ThenComparingInt(IToIntFunction)

Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une int clé de tri.

ThenComparingLong(IToLongFunction)

Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une long clé de tri.

UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Fonction de comparaison, qui impose un ordre total sur une collection d’objets.

GetJniTypeName(IJavaPeerable)

Fonction de comparaison, qui impose un ordre total sur une collection d’objets.

S’applique à