IComparator Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 c
b
. 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 Serializable
o .
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) <= 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 Comparable
do , 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 |
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 |
Comparing(IFunction, IComparator) |
Aceita uma função que extrai uma chave de classificação de um tipo |
ComparingDouble(IToDoubleFunction) |
Aceita uma função que extrai uma |
ComparingInt(IToIntFunction) |
Aceita uma função que extrai uma |
ComparingLong(IToLongFunction) |
Aceita uma função que extrai uma |
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 |
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 |
NullsFirst(IComparator) |
Retorna um comparador amigável nulo que considera |
NullsLast(IComparator) |
Retorna um comparador amigável nulo que considera |
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 |
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 |
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 |
ThenComparing(IFunction, IComparator) |
Retorna um comparador de ordem lexicográfica com uma função que extrai uma chave a ser comparada com o dado |
ThenComparingDouble(IToDoubleFunction) |
Retorna um comparador de ordem lexicográfica com uma função que extrai uma |
ThenComparingInt(IToIntFunction) |
Retorna um comparador de ordem lexicográfica com uma função que extrai uma |
ThenComparingLong(IToLongFunction) |
Retorna um comparador de ordem lexicográfica com uma função que extrai uma |
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. |