Compartilhar via


IComparator Interface

Definição

Uma função de comparação, que impõe uma ordenação total em alguma coleção 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 alguma coleção 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 um 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 SortedMap) ou para fornecer uma ordem para coleções de objetos que não têm uma ordem natural Comparável.

A ordenação imposta por um comparador c a um conjunto de elementos S é dita consistente com iguais se e somente se c.compare(e1, e2)==0 tem o mesmo valor booleano que e1.equals(e2) para todo e1 e e2 em S.

Deve-se ter cuidado 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) desenhados a partir 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 adiciona dois elementos a e tal que (a.equals(b) && c.compare(a, b) != 0) a um vazio TreeSet com comparador cb . 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.

Nota: Geralmente, é uma boa ideia para os comparadores também implementar 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 Serializableo .

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

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

O quociente para esta ordem total é:

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

Decorre imediatamente do contrato que compare o quociente é uma relação de equivalência sobre S, e que a ordem imposta é uma ordem total sobre 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 pelo(s) método(s) do(s) objeto( Object#equals(Object) equals(Object) s):

{(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.

Ao contrário Comparabledo , um comparador pode opcionalmente permitir a comparação de argumentos nulos, mantendo os requisitos para uma relação de equivalência.

Essa interface é membro do Java Collections Framework.

Adicionado em 1.2.

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

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

Propriedades

Handle

Obtém o valor JNI do objeto Android subjacente.

(Herdado de IJavaObject)
JniIdentityHashCode

Retorna o valor de java.lang.System.identityHashCode() para a instância encapsulada.

(Herdado de IJavaPeerable)
JniManagedPeerState

Estado do par gerenciado.

(Herdado de IJavaPeerable)
JniPeerMembers

Acesso de membros e suporte à invocação.

(Herdado de IJavaPeerable)
PeerReference

Retorna uma JniObjectReference das instâncias do objeto Java encapsulado.

(Herdado de IJavaPeerable)

Métodos

Compare(Object, Object)

Compara seus dois argumentos para a ordem.

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 se compara por essa chave de classificação.

Comparing(IFunction, IComparator)

Aceita uma função que extrai uma chave de classificação de um tipo Te retorna uma Comparator<T> que compara por essa chave de classificação usando o Comparatorespecificado .

ComparingDouble(IToDoubleFunction)

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

ComparingInt(IToIntFunction)

Aceita uma função que extrai uma int chave de classificação de um tipo Te retorna uma Comparator<T> que se compara 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 se compara por essa chave de classificação.

Disposed()

Chamado quando a instância tiver sido descartada.

(Herdado de IJavaPeerable)
DisposeUnlessReferenced()

Se não houver referências pendentes a este caso, então chame Dispose(), caso contrário, não faz nada.

(Herdado de IJavaPeerable)
Equals(Object)

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

Finalized()

Chamado quando a instância tiver sido 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 do que não-nulo.

Reversed()

Retorna um comparador que impõe a ordem 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 alguma coleção 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)

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

ThenComparing(IFunction, IComparator)

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

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 int chave de classificação.

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 tempo de execução não a retorne de chamadas futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Herdado de IJavaPeerable)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

Aplica-se a