IComparable 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í.
Esta interfaz impone una ordenación total en los objetos de cada clase que la implementa.
[Android.Runtime.Register("java/lang/Comparable", "", "Java.Lang.IComparableInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface IComparable : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/lang/Comparable", "", "Java.Lang.IComparableInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type IComparable = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Derivado
- Atributos
- Implementaciones
Comentarios
Esta interfaz impone una ordenación total en los objetos de cada clase que la implementa. Este orden se conoce como ordenación natural de la clase y el método de compareTo la clase se conoce como su método de comparación natural.
Las listas (y matrices) de objetos que implementan esta interfaz se pueden ordenar automáticamente por Collections#sort(List) Collections.sort (y Arrays#sort(Object[]) Arrays.sort). Los objetos que implementan esta interfaz se pueden usar como claves en un mapa ordenado SortedMap o como elementos de un conjunto ordenado SortedSet, sin necesidad de especificar un comparador de comparadores.
Se dice que el orden natural de una clase C es coherente con igual si y solo si e1.compareTo(e2) == 0 tiene el mismo valor booleano que e1.equals(e2) para cada e1 y e2 de clase C. Tenga en cuenta que null no es una instancia de ninguna clase y e.compareTo(null) debe iniciar un NullPointerException elemento aunque e.equals(null) devuelva false.
Se recomienda encarecidamente (aunque no es necesario) que las ordenaciones naturales sean coherentes con iguales. Esto es así porque los conjuntos ordenados (y mapas ordenados) sin comparadores explícitos se comportan "extrañamente" cuando se usan con elementos (o claves) cuya ordenación natural es incoherente con iguales. En concreto, este conjunto ordenado (o mapa ordenado) infringe el contrato general para el conjunto (o mapa), que se define en términos del equals método .
Por ejemplo, si se agregan dos claves a y b de modo que (!a.equals(b) && a.compareTo(b) == 0) a un conjunto ordenado que no usa un comparador explícito, la segunda add operación devuelve false (y el tamaño del conjunto ordenado no aumenta) porque a y b son equivalentes desde la perspectiva del conjunto ordenado.
Prácticamente todas las clases principales Java que implementan Comparable tienen ordenes naturales que son coherentes con iguales. Una excepción es java.math.BigDecimal, cuya ordenación natural java.math.BigDecimal#compareTo equivale a BigDecimal los objetos con valores numéricos iguales y representaciones diferentes (como 4.0 y 4.00). Para java.math.BigDecimal#equals BigDecimal.equals() que devuelva true, la representación y el valor numérico de los dos BigDecimal objetos deben ser iguales.
Para la inclinación matemática, la relación que define el orden natural en una clase C determinada es:
{@code
{(x, y) such that x.compareTo(y) <= 0}.
}
El cociente de este orden total es:
{@code
{(x, y) such that x.compareTo(y) == 0}.
}
Procede inmediatamente del contrato para compareTo que el cociente sea una relación de equivalencia en C, y que la ordenación natural es un orden total en C. Cuando decimos que la ordenación natural de una clase es coherente con iguales, significamos que el cociente para el orden natural es la relación de equivalencia definida por el método de Object#equals(Object) equals(Object) la clase:
{(x, y) such that x.equals(y)}.
Es decir, cuando la ordenación natural de una clase 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 compareTo método son las mismas.
Esta interfaz es miembro del marco de colecciones de Java.
Agregado en la versión 1.2.
Java documentación para java.lang.Comparable.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Propiedades
| Nombre | Description |
|---|---|
| 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 un JniObjectReference de la instancia de objeto Java ajustada. (Heredado de IJavaPeerable) |
Métodos
| Nombre | Description |
|---|---|
| CompareTo(Object) |
Compara este objeto con el objeto especificado para el orden. |
| Disposed() |
Se llama cuando se ha eliminado la instancia. (Heredado de IJavaPeerable) |
| DisposeUnlessReferenced() |
Si no hay referencias pendientes a esta instancia, llama a |
| Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Esta interfaz impone una ordenación total en los objetos de cada clase que la implementa. (Heredado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
| 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
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Esta interfaz impone una ordenación total en los objetos de cada clase que la implementa. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |