IComparator Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.sort
Arrays#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 e1
e2
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) <= 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 |
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 |
Comparing(IFunction, IComparator) |
Accepte une fonction qui extrait une clé de tri à partir d’un type |
ComparingDouble(IToDoubleFunction) |
Accepte une fonction qui extrait une |
ComparingInt(IToIntFunction) |
Accepte une fonction qui extrait une |
ComparingLong(IToLongFunction) |
Accepte une fonction qui extrait une |
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 |
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 |
NullsFirst(IComparator) |
Retourne un comparateur convivial null qui considère |
NullsLast(IComparator) |
Retourne un comparateur convivial null qui considère |
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 |
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 |
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 |
ThenComparing(IFunction, IComparator) |
Retourne un comparateur de l’ordre lexicographique avec une fonction qui extrait une clé à comparer à l’ordre donné |
ThenComparingDouble(IToDoubleFunction) |
Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une |
ThenComparingInt(IToIntFunction) |
Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une |
ThenComparingLong(IToLongFunction) |
Retourne un comparateur d’ordre lexicographique avec une fonction qui extrait une |
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. |