IComparator Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Función de comparación, que impone una ordenación total en algunas colecciones de objetos.
[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
- Derivado
- Atributos
- Implementaciones
Comentarios
Función de comparación, que impone una ordenación total en algunas colecciones de objetos. Los comparadores se pueden pasar a un método de ordenación (como Collections#sort(List,Comparator) Collections.sort
o Arrays#sort(Object[],Comparator) Arrays.sort
) para permitir un control preciso sobre el criterio de ordenación. Los comparadores también se pueden usar para controlar el orden de determinadas estructuras de datos (como conjuntos ordenados SortedSet o mapas ordenados SortedMap), o para proporcionar una ordenación para colecciones de objetos que no tienen un orden natural comparable.
Se dice que la ordenación impuesta por un comparador c
en un conjunto de elementos S
es coherente con igual si y solo si c.compare(e1, e2)==0
tiene el mismo valor booleano que e1.equals(e2)
para cada e1
y e2
en S
.
Se debe tener precaución al usar un comparador capaz de imponer una ordenación incoherente con iguales para ordenar un conjunto ordenado (o mapa ordenado). Supongamos que se usa un conjunto ordenado (o mapa ordenado) con un comparador c
explícito con elementos (o claves) dibujados a partir de un conjunto S
. Si la ordenación impuesta por c
on S
es incoherente con iguales, el conjunto ordenado (o mapa ordenado) se comportará "extrañamente". En concreto, el conjunto ordenado (o mapa ordenado) infringirá el contrato general para el conjunto (o mapa), que se define en términos de equals
.
Por ejemplo, supongamos que uno agrega dos elementos a
y de modo que (a.equals(b) && c.compare(a, b) != 0)
a un vacío TreeSet
con comparador c
b
. La segunda add
operación devolverá true (y el tamaño del conjunto de árboles aumentará) porque a
y b
no son equivalentes desde la perspectiva del conjunto de árboles, aunque esto sea contrario a la especificación del Set#add Set.add
método .
Nota: Por lo general, es una buena idea para que los comparadores también implementen java.io.Serializable
, ya que se pueden usar como métodos de ordenación en estructuras de datos serializables (como TreeSet
, TreeMap
). Para que la estructura de datos se serialice correctamente, el comparador (si se proporciona) debe implementar Serializable
.
Para la inclinación matemática, la relación que define la ordenación impuesta que un comparador c
determinado impone en un conjunto determinado de objetos S
es:
{(x, y) such that c.compare(x, y) <= 0}.
El cociente de este orden total es:
{(x, y) such that c.compare(x, y) == 0}.
Procede inmediatamente del contrato para compare
que el cociente sea una relación de equivalencia en S
, y que la ordenación impuesta es un orden total en S
. Cuando decimos que la ordenación impuesta por c
es S
coherente con iguales, significamos que el cociente de la ordenación es la relación de equivalencia definida por los métodos de Object#equals(Object) equals(Object)
los objetos:
{(x, y) such that x.equals(y)}.
En otras palabras, cuando la ordenación impuesta es coherente con iguales, las clases de equivalencia definidas por la relación de equivalencia del equals
método y las clases de equivalencia definidas por el cociente del compare
método son las mismas.
A diferencia Comparable
de , un comparador puede permitir opcionalmente la comparación de argumentos NULL, al tiempo que mantiene los requisitos para una relación de equivalencia.
Esta interfaz es miembro de Java Collections Framework.
Agregado en la versión 1.2.
Documentación de Java para java.util.Comparator
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Propiedades
Handle |
Obtiene el valor JNI del objeto Android subyacente. (Heredado de IJavaObject) |
JniIdentityHashCode |
Devuelve el valor de |
JniManagedPeerState |
Estado del mismo nivel administrado. (Heredado de IJavaPeerable) |
JniPeerMembers |
Compatibilidad con la invocación y el acceso de miembros. (Heredado de IJavaPeerable) |
PeerReference |
Devuelve una JniObjectReference de la instancia de objeto Java ajustada. (Heredado de IJavaPeerable) |
Métodos
Compare(Object, Object) |
Compara sus dos argumentos para el orden. |
Comparing(IFunction) |
Acepta una función que extrae una |
Comparing(IFunction, IComparator) |
Acepta una función que extrae una clave de ordenación de un tipo |
ComparingDouble(IToDoubleFunction) |
Acepta una función que extrae una |
ComparingInt(IToIntFunction) |
Acepta una función que extrae una |
ComparingLong(IToLongFunction) |
Acepta una función que extrae una |
Disposed() |
Se llama cuando se ha eliminado la instancia. (Heredado de IJavaPeerable) |
DisposeUnlessReferenced() |
Si no hay referencias pendientes a esta instancia, llama a |
Equals(Object) |
Indica si algún otro objeto es " igual a" este comparador. |
Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
NaturalOrder() |
Devuelve un comparador que compara |
NullsFirst(IComparator) |
Devuelve un comparador que admite valores NULL que considera que es |
NullsLast(IComparator) |
Devuelve un comparador que admite valores NULL que considera |
Reversed() |
Devuelve un comparador que impone la ordenación inversa de este comparador. |
ReverseOrder() |
Devuelve un comparador que impone el inverso del <orden natural em>/em><. |
SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
SetJniManagedPeerState(JniManagedPeerStates) |
Función de comparación, que impone una ordenación total en algunas colecciones de objetos. (Heredado de IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
ThenComparing(IComparator) |
Devuelve un comparador de orden lexicográfico con otro comparador. |
ThenComparing(IFunction) |
Devuelve un comparador de orden lexicográfico con una función que extrae una |
ThenComparing(IFunction, IComparator) |
Devuelve un comparador de orden lexicográfico con una función que extrae una clave que se va a comparar con el especificado |
ThenComparingDouble(IToDoubleFunction) |
Devuelve un comparador de orden lexicográfico con una función que extrae una |
ThenComparingInt(IToIntFunction) |
Devuelve un comparador de orden lexicográfico con una función que extrae una |
ThenComparingLong(IToLongFunction) |
Devuelve un comparador de orden lexicográfico con una función que extrae una |
UnregisterFromRuntime() |
Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Heredado de IJavaPeerable) |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
Función de comparación, que impone una ordenación total en algunas colecciones de objetos. |
GetJniTypeName(IJavaPeerable) |
Función de comparación, que impone una ordenación total en algunas colecciones de objetos. |