Compartir a través de


IComparator Interfaz

Definición

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 cb . 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) &lt;= 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 Comparablede , 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 java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
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 java.lang.Comparable Comparable clave de ordenación de un tipo Ty devuelve un Comparator<T> objeto que se compara por esa clave de ordenación.

Comparing(IFunction, IComparator)

Acepta una función que extrae una clave de ordenación de un tipo Ty devuelve un Comparator<T> objeto que se compara por esa clave de ordenación mediante el especificado Comparator.

ComparingDouble(IToDoubleFunction)

Acepta una función que extrae una double clave de ordenación de un tipo Ty devuelve un Comparator<T> objeto que se compara por esa clave de ordenación.

ComparingInt(IToIntFunction)

Acepta una función que extrae una int clave de ordenación de un tipo Ty devuelve un Comparator<T> objeto que se compara por esa clave de ordenación.

ComparingLong(IToLongFunction)

Acepta una función que extrae una long clave de ordenación de un tipo Ty devuelve un Comparator<T> objeto que se compara por esa clave de ordenación.

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
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 Comparable objetos en orden natural.

NullsFirst(IComparator)

Devuelve un comparador que admite valores NULL que considera que es null menor que un valor null.

NullsLast(IComparator)

Devuelve un comparador que admite valores NULL que considera null que es mayor que no NULL.

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 JniIdentityHashCode.

(Heredado de IJavaPeerable)
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 PeerReference.

(Heredado de IJavaPeerable)
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 Comparable clave de ordenación.

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 Comparator.

ThenComparingDouble(IToDoubleFunction)

Devuelve un comparador de orden lexicográfico con una función que extrae una double clave de ordenación.

ThenComparingInt(IToIntFunction)

Devuelve un comparador de orden lexicográfico con una función que extrae una int clave de ordenación.

ThenComparingLong(IToLongFunction)

Devuelve un comparador de orden lexicográfico con una función que extrae una long clave de ordenación.

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.

Se aplica a