IMap 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.
Um objeto que mapeia chaves para valores.
[Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface IMap : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type IMap = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Derivado
- Atributos
- Implementações
Comentários
Um objeto que mapeia chaves para valores. Um mapa não pode conter chaves duplicadas; cada chave pode ser mapeada para no máximo um valor.
Essa interface assume o lugar da Dictionary classe, que era uma classe totalmente abstrata em vez de uma interface.
A Map interface fornece três exibições de coleção, que permitem que o conteúdo de um mapa seja exibido como um conjunto de chaves, coleção de valores ou conjunto de mapeamentos chave-valor. A ordem de um mapa é definida como a ordem na qual os iteradores nas exibições de coleção do mapa retornam seus elementos. Algumas implementações de mapa, como a TreeMap classe, fazem garantias específicas quanto à ordem de encontro; outras, como a HashMap classe, não fazem. Mapas com uma ordem de encontro definida geralmente são subtipos da SequencedMap interface.
Observação: um grande cuidado deve ser exercido se objetos mutáveis forem usados como chaves de mapa. O comportamento de um mapa não será especificado se o valor de um objeto for alterado de uma maneira que afete equals comparações enquanto o objeto for uma chave no mapa. Um caso especial dessa proibição é que não é permitido que um mapa se contenha como uma chave. Embora seja permitido que um mapa se contenha como um valor, é recomendável ter extrema cautela: os equalshashCode métodos não são mais bem definidos em tal mapa.
Todas as classes de implementação de mapa de uso geral devem fornecer dois construtores "padrão": um construtor nulo (sem argumentos) que cria um mapa vazio e um construtor com um único argumento de tipo Map, que cria um novo mapa com os mesmos mapeamentos chave-valor que seu argumento. Na verdade, o último construtor permite que o usuário copie qualquer mapa, produzindo um mapa equivalente da classe desejada. Não há como impor essa recomendação (pois as interfaces não podem conter construtores), mas todas as implementações de mapa de uso geral no JDK estão em conformidade.
Os métodos "destrutivos" contidos nessa interface, ou seja, os métodos que modificam o mapa no qual operam, são especificados para serem lançados UnsupportedOperationException se este mapa não der suporte à operação. Se esse for o caso, esses métodos podem, mas não são necessários, gerar um UnsupportedOperationException se a invocação não teria efeito no mapa. Por exemplo, invocar o #putAll(Map) método em um mapa não modificável pode, mas não é necessário, gerar a exceção se o mapa cujos mapeamentos devem ser "sobrepostos" estiver vazio.
Algumas implementações de mapa têm restrições sobre as chaves e os valores que podem conter. Por exemplo, algumas implementações proíbem chaves e valores nulos e algumas têm restrições sobre os tipos de suas chaves. A tentativa de inserir uma chave ou valor inelegível gera uma exceção desmarcada, normalmente NullPointerException ou ClassCastException. A tentativa de consultar a presença de uma chave ou valor inelegível pode gerar uma exceção ou pode simplesmente retornar false; algumas implementações exibirão o comportamento anterior e algumas exibirão a última. De modo mais geral, tentar uma operação em uma chave ou valor inelegível cuja conclusão não resultaria na inserção de um elemento inelegível no mapa pode gerar uma exceção ou ter êxito, na opção da implementação. Essas exceções são marcadas como "opcionais" na especificação dessa interface.
Muitos métodos nas interfaces do Collections Framework são definidos em termos do Object#equals(Object) equals método. Por exemplo, a especificação do #containsKey(Object) containsKey(Object key) método diz: "retorna true se e somente se este mapa contiver um mapeamento para uma chave k como essa (key==null ? k==null : key.equals(k))." Essa especificação não deve ser interpretada para implicar que invocar Map.containsKey com um argumento key não nulo fará key.equals(k) com que seja invocado para qualquer chave k. As implementações são gratuitas para implementar otimizações em que a equals invocação é evitada, por exemplo, comparando primeiro os códigos de hash das duas chaves. (A Object#hashCode() especificação garante que dois objetos com códigos hash diferentes não podem ser iguais.) De modo mais geral, as implementações das várias interfaces da Estrutura de Coleções são gratuitas para aproveitar o comportamento especificado de métodos subjacentes Object onde o implementador considerar apropriado.
Algumas operações de mapa que executam a passagem recursiva do mapa podem falhar com uma exceção para instâncias auto-referenciais em que o mapa se contém direta ou indiretamente. Isso inclui os clone()equals()hashCode() métodos , e toString() . As implementações podem, opcionalmente, lidar com o cenário auto-referencial, no entanto, a maioria das implementações atuais não o fazem.
<h2>"unmodifiable">Unmodifiable Maps</h2>
Os Map#of() Map.ofmétodos de fábrica estáticos e Map#copyOf Map.copyOf estáticos Map#ofEntries(Map.Entry...) Map.ofEntriesfornecem uma maneira conveniente de criar mapas não modificáveis. As Map instâncias criadas por esses métodos têm as seguintes características:
<ul>li Eles são <i>unmodifiable</i>.>< Chaves e valores não podem ser adicionados, removidos ou atualizados. Chamar qualquer método de mutador no Mapa sempre causará UnsupportedOperationException a geração. No entanto, se as chaves ou valores contidos forem mutáveis, isso poderá fazer com que o Mapa se comporte inconsistentemente ou seu conteúdo pareça ser alterado.
<li>Eles não permitem null chaves e valores. As tentativas de criá-las com null chaves ou valores resultam em NullPointerException.
<li>Elas serão serializáveis se todas as chaves e valores forem serializáveis.
<li>Eles rejeitam chaves duplicadas no momento da criação. Chaves duplicadas passadas para um método de fábrica estático resultam em IllegalArgumentException.
<li>A ordem de iteração de mapeamentos não é especificada e está sujeita a alterações.
<li>Eles são baseados em valor. Os programadores devem tratar instâncias #equals(Object) iguais a intercambiáveis e não devem usá-las para sincronização ou comportamento imprevisível. Por exemplo, em uma versão futura, a sincronização pode falhar. Os chamadores não devem fazer suposições sobre a identidade das instâncias retornadas. As fábricas são livres para criar novas instâncias ou reutilizar as existentes.
<li>Eles são serializados conforme especificado na página Formulário Serializado .
</ul>
Essa interface é um membro do Java Collections Framework.
Adicionado em 1.2.
Java documentação para java.util.Map.
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) |
| IsEmpty |
Retorna se este mapa está vazio. |
| 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 |
|---|---|
| Clear() |
Remove todos os mapeamentos deste mapa (operação opcional). |
| Compute(Object, IBiFunction) |
Tenta calcular um mapeamento para a chave especificada e seu valor mapeado atual (ou |
| ComputeIfAbsent(Object, IFunction) |
Se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para |
| ComputeIfPresent(Object, IBiFunction) |
Se o valor da chave especificada estiver presente e não nulo, tentará calcular um novo mapeamento considerando a chave e seu valor mapeado atual. |
| ContainsKey(Object) |
Retornará |
| ContainsValue(Object) |
Retorna |
| CopyOf(IDictionary) |
Retorna um mapa não modificável que contém as entradas do mapa especificado. |
| 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á |
| Entry(Object, Object) |
Retorna um imutável |
| EntrySet() |
Retorna uma |
| Equals(Object) |
Compara o objeto especificado com este mapa quanto à igualdade. |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| ForEach(IBiConsumer) |
Executa a ação fornecida para cada entrada neste mapa até que todas as entradas tenham sido processadas ou a ação gere uma exceção. |
| Get(Object) |
Retorna o valor para o qual a chave especificada é mapeada ou |
| GetHashCode() |
Retorna o valor do código hash para este mapa. |
| GetOrDefault(Object, Object) |
Retorna o valor para o qual a chave especificada é mapeada ou |
| KeySet() |
Retorna uma |
| Merge(Object, Object, IBiFunction) |
Se a chave especificada ainda não estiver associada a um valor ou estiver associada a nulo, associe-a ao valor não nulo fornecido. |
| Of() |
Retorna um mapa não modificável que contém zero mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém dez mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém nove mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém oito mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém sete mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém seis mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém cinco mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém quatro mapeamentos. |
| Of(Object, Object, Object, Object, Object, Object) |
Retorna um mapa não modificável que contém três mapeamentos. |
| Of(Object, Object, Object, Object) |
Retorna um mapa não modificável que contém dois mapeamentos. |
| Of(Object, Object) |
Retorna um mapa não modificável que contém um único mapeamento. |
| OfEntries(IMapEntry[]) |
Retorna um mapa imutável que contém chaves e valores extraídos das entradas fornecidas. |
| Put(Object, Object) |
Associa o valor especificado à chave especificada neste mapa (operação opcional). |
| PutAll(IDictionary) |
Copia todos os mapeamentos do mapa especificado para este mapa (operação opcional). |
| PutIfAbsent(Object, Object) |
Se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para |
| Remove(Object, Object) |
Remove a entrada da chave especificada somente se ela estiver mapeada no momento para o valor especificado. |
| Remove(Object) |
Remove o mapeamento de uma chave deste mapa se ela estiver presente (operação opcional). |
| Replace(Object, Object, Object) |
Substitui a entrada da chave especificada somente se atualmente mapeada para o valor especificado. |
| Replace(Object, Object) |
Substituirá a entrada da chave especificada somente se ela estiver mapeada no momento para algum valor. |
| ReplaceAll(IBiFunction) |
Substitui o valor de cada entrada pelo resultado da invocação da função determinada nessa entrada até que todas as entradas tenham sido processadas ou a função gere uma exceção. |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Um objeto que mapeia chaves para valores. (Herdado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| Size() |
Retorna o número de mapeamentos chave-valor neste mapa. |
| 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) |
| Values() |
Retorna uma |
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) |
Um objeto que mapeia chaves para valores. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |