IComparator Interface

Definição

Uma função de comparação, que impõe uma ordenação total em algumas coleções 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
Implementações

Comentários

Uma função de comparação, que impõe uma ordenação total em algumas coleções de objetos. Os comparadores podem ser passados para um método de classificação (como Collections#sort(List,Comparator) Collections.sort ou Arrays#sort(Object[],Comparator) Arrays.sort) para permitir o controle preciso sobre a ordem de classificação. Os comparadores também podem ser usados para controlar a ordem de determinadas estruturas de dados (como conjuntos classificados sortedSet ou mapas classificados de SortedMap) ou para fornecer uma ordenação para coleções de objetos que não têm uma ordenação natural comparável.

A ordenação imposta por um comparador c em um conjunto de elementos S é considerada consistente com igual a se e somente se c.compare(e1, e2)==0 tiver o mesmo valor booliano que e1.equals(e2) para cada e1 e e2 em S.

Cuidado deve ser exercido ao usar um comparador capaz de impor uma ordenação inconsistente com iguais para ordenar um conjunto classificado (ou mapa classificado). Suponha que um conjunto classificado (ou mapa classificado) com um comparador c explícito seja usado com elementos (ou chaves) extraídos de um conjunto S. Se a ordem imposta por c on S for inconsistente com iguais, o conjunto classificado (ou mapa classificado) se comportará "estranhamente". Em particular, o conjunto classificado (ou mapa classificado) violará o contrato geral para conjunto (ou mapa), que é definido em termos de equals.

Por exemplo, suponha que um adicione dois elementos a e b tal que (a.equals(b) && c.compare(a, b) != 0) a um vazio TreeSet com comparador c. A segunda add operação retornará true (e o tamanho do conjunto de árvores aumentará) porque a e b não são equivalentes da perspectiva do conjunto de árvores, mesmo que isso seja contrário à especificação do Set#add Set.add método.

Observação: geralmente é uma boa ideia que os comparadores também implementem java.io.Serializable, pois eles podem ser usados como métodos de ordenação em estruturas de dados serializáveis (como TreeSet, TreeMap). Para que a estrutura de dados seja serializada com êxito, o comparador (se fornecido) deve implementar Serializable.

Para os matematicamente inclinados, a relação que define a ordenação imposta que um determinado comparador c impõe a um determinado conjunto de objetos S é:

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

O quociente dessa ordem total é:

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

Ele segue imediatamente do contrato para compare que o quociente seja uma relação Sde equivalência e que a ordenação imposta seja uma ordem total.S Quando dizemos que a ordenação imposta por c on S é consistente com iguais, queremos dizer que o quociente para a ordenação é a relação de equivalência definida pelos métodos dos Object#equals(Object) equals(Object) objetos):

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

Em outras palavras, quando a ordenação imposta é consistente com iguais, as classes de equivalência definidas pela relação de equivalência do equals método e as classes de equivalência definidas pelo quociente do compare método são as mesmas.

Diferentemente Comparabledisso, um comparador pode opcionalmente permitir a comparação de argumentos nulos, mantendo os requisitos para uma relação de equivalência.

Essa interface é um membro do Java Collections Framework.

Adicionado em 1.2.

Java documentação para java.util.Comparator.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Propriedades

Nome Description
Handle

Obtém o valor JNI do objeto Android subjacente.

(Herdado de IJavaObject)
JniIdentityHashCode

Retorna o valor da java.lang.System.identityHashCode() instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso ao membro e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas.

(Herdado de IJavaPeerable)

Métodos

Nome Description
Compare(Object, Object)

Compara seus dois argumentos para ordem.

Comparing(IFunction, IComparator)

Aceita uma função que extrai uma chave de classificação de um tipo Te retorna uma Comparator<T> que é comparada por essa chave de classificação usando a especificada Comparator.

Comparing(IFunction)

Aceita uma função que extrai uma java.lang.Comparable Comparable chave de classificação de um tipo Te retorna uma Comparator<T> que é comparada por essa chave de classificação.

ComparingDouble(IToDoubleFunction)

Aceita uma função que extrai uma double chave de classificação de um tipo Te retorna uma Comparator<T> que é comparada por essa chave de classificação.

ComparingInt(IToIntFunction)

Aceita uma função que extrai uma chave de classificação int de um tipo Te retorna uma Comparator<T> que é comparada por essa chave de classificação.

ComparingLong(IToLongFunction)

Aceita uma função que extrai uma long chave de classificação de um tipo Te retorna uma Comparator<T> que é comparada por essa chave de classificação.

Disposed()

Chamado quando a instância foi descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a essa instância, então chamará Dispose(); caso contrário, não fará nada.

(Herdado de IJavaPeerable)
Equals(Object)

Indica se algum outro objeto é " igual a &aspas; este comparador.

Finalized()

Chamado quando a instância foi finalizada.

(Herdado de IJavaPeerable)
NaturalOrder()

Retorna um comparador que compara Comparable objetos em ordem natural.

NullsFirst(IComparator)

Retorna um comparador amigável nulo que considera null ser menor que não nulo.

NullsLast(IComparator)

Retorna um comparador amigável nulo que considera null ser maior que não nulo.

Reversed()

Retorna um comparador que impõe a ordenação inversa desse comparador.

ReverseOrder()

Retorna um comparador que impõe o inverso da <>ordenação< natural em/em>.

SetJniIdentityHashCode(Int32)

Defina o valor retornado por JniIdentityHashCode.

(Herdado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Uma função de comparação, que impõe uma ordenação total em algumas coleções de objetos.

(Herdado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Defina o valor retornado por PeerReference.

(Herdado de IJavaPeerable)
ThenComparing(IComparator)

Retorna um comparador de ordem lexicográfica com outro comparador.

ThenComparing(IFunction, IComparator)

Retorna um comparador de ordem lexicográfica com uma função que extrai uma chave a ser comparada com a determinada Comparator.

ThenComparing(IFunction)

Retorna um comparador de ordem lexicográfica com uma função que extrai uma Comparable chave de classificação.

ThenComparingDouble(IToDoubleFunction)

Retorna um comparador de ordem lexicográfica com uma função que extrai uma double chave de classificação.

ThenComparingInt(IToIntFunction)

Retorna um comparador de ordem lexicográfica com uma função que extrai uma chave de classificação int .

ThenComparingLong(IToLongFunction)

Retorna um comparador de ordem lexicográfica com uma função que extrai uma long chave de classificação.

UnregisterFromRuntime()

Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Uma função de comparação, que impõe uma ordenação total em algumas coleções de objetos.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a