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 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) <= 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 |
| 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 |
| Comparing(IFunction) |
Aceita uma função que extrai uma |
| ComparingDouble(IToDoubleFunction) |
Aceita uma função que extrai uma |
| ComparingInt(IToIntFunction) |
Aceita uma função que extrai uma chave de classificação |
| ComparingLong(IToLongFunction) |
Aceita uma função que extrai uma |
| 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á |
| 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 |
| 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 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 |
| 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 |
| 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 |
| ThenComparing(IFunction) |
Retorna um comparador de ordem lexicográfica com uma função que extrai uma |
| 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 chave de classificação |
| 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 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 |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| 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 |