Compartilhar via


Hashtable Classe

Definição

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

[Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class Hashtable : Java.Util.Dictionary, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IMap
[<Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type Hashtable = class
    inherit Dictionary
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
Herança
Atributos
Implementações

Comentários

Essa classe implementa uma tabela de hash, que mapeia chaves para valores. Qualquer não-objetonull pode ser usado como uma chave ou como um valor.

Para armazenar e recuperar objetos de uma hashtable com êxito, os objetos usados como chaves devem implementar o hashCode método e o equals método.

Uma instância de tem dois parâmetros que afetam seu desempenho: capacidade inicial e fator de Hashtable carga. A capacidade é o número de buckets na tabela de hash, e a capacidade inicial é simplesmente a capacidade no momento em que a tabela de hash é criada. Observe que a tabela de hash está aberta: no caso de uma "colisão de hash", um único bucket armazena várias entradas, que devem ser pesquisadas sequencialmente. O fator de carga é uma medida de quão cheia a tabela de hash pode ficar antes que sua capacidade seja aumentada automaticamente. Os parâmetros de capacidade inicial e fator de carga são apenas dicas para a implementação. Os detalhes exatos sobre quando e se o método rehash é chamado dependem da implementação.

Geralmente, o fator de carga padrão (.75) oferece uma boa compensação entre custos de tempo e espaço. Valores mais altos diminuem a sobrecarga de espaço, mas aumentam o custo de tempo para procurar uma entrada (o que se reflete na maioria das Hashtable operações, incluindo get e put).

A capacidade inicial controla uma compensação entre o espaço desperdiçado e a necessidade de rehash operações, que são demoradas. Nenhuma rehash operação ocorreráse a capacidade inicial for maior que o número máximo de entradas que conterá Hashtable dividido por seu fator de carga. No entanto, definir a capacidade inicial muito alta pode desperdiçar espaço.

Se muitas entradas devem ser transformadas em um Hashtable, criá-lo com uma capacidade suficientemente grande pode permitir que as entradas sejam inseridas de forma mais eficiente do que permitir que ele execute o rehashing automático conforme necessário para aumentar a tabela.

Este exemplo cria uma tabela de hash de números. Ele usa os nomes dos números como chaves:

{@code
              Hashtable<String, Integer> numbers
                = new Hashtable<String, Integer>();
              numbers.put("one", 1);
              numbers.put("two", 2);
              numbers.put("three", 3);}

Para recuperar um número, use o seguinte código:

{@code
              Integer n = numbers.get("two");
              if (n != null) {
                System.out.println("two = " + n);
              }}

Os iteradores retornados pelo iterator método das coleções retornadas por todos os "métodos de exibição de coleção" dessa classe são <em>fail-fast</em>: se a Hashtable for estruturalmente modificada a qualquer momento depois que o iterador for criado, de qualquer forma, exceto através do próprio remove método do iterador, o iterador lançará um ConcurrentModificationExceptionarquivo . Assim, diante da modificação simultânea, o iterador falha rápida e limpamente, em vez de arriscar um comportamento arbitrário e não determinista em um momento indeterminado no futuro. As Enumerações retornadas por Hashtable's #keys keys e #elements elements métodos são <em>not</em> fail-fast, se a Hashtable é estruturalmente modificada a qualquer momento depois que a enumeração é criada, então os resultados da enumeração são indefinidos.

Observe que o comportamento de falha rápida de um iterador não pode ser garantido, pois é, de modo geral, impossível fazer quaisquer garantias rígidas na presença de modificação simultânea não sincronizada. Os iteradores rápidos lançam ConcurrentModificationException com base no melhor esforço. Portanto, seria errado escrever um programa que dependesse dessa exceção para sua correção: o comportamento rápido de iteradores deve ser usado apenas para detectar bugs.

A partir da plataforma Java 2 v1.2, essa classe foi adaptada para implementar a Map interface, tornando-a membro do

Framework de Coleções Java. Ao contrário das novas implementações de coleção, Hashtable é sincronizado. Se uma implementação thread-safe não for necessária, recomenda-se usar HashMap no lugar de Hashtable. Se uma implementação altamente simultânea de thread-safe for desejada, recomenda-se usar no java.util.concurrent.ConcurrentHashMap lugar de Hashtable.

Adicionado em 1.0.

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

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.

Construtores

Hashtable()

Constrói uma nova hashtable vazia com uma capacidade inicial padrão (11) e fator de carga (0.

Hashtable(IDictionary)

Constrói uma nova tabela de hash com os mesmos mapeamentos que o Mapa fornecido.

Hashtable(Int32)

Constrói uma nova tabela de hash vazia com a capacidade inicial especificada e o fator de carga padrão (0.

Hashtable(Int32, Single)

Constrói uma nova hashtable vazia com a capacidade inicial especificada e o fator de carga especificado.

Hashtable(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução.

Propriedades

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
IsEmpty

Testa se essa hashtable não mapeia nenhuma chave para valores.

JniIdentityHashCode

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
JniPeerMembers

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

PeerReference

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
ThresholdClass

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Clear()

Limpa essa hashtable para que ela não contenha chaves.

Clone()

Cria uma cópia superficial desta hashtable.

Compute(Object, IBiFunction)

A ser adicionado

ComputeIfAbsent(Object, IFunction)

A ser adicionado

ComputeIfPresent(Object, IBiFunction)

A ser adicionado

Contains(Object)

Testa se algumas chaves são mapeadas para o valor especificado nesta tabela de hash.

ContainsKey(Object)

Testa se o objeto especificado é uma chave nesta tabela de hash.

ContainsValue(Object)

Retorna true se essa tabela de hash mapear uma ou mais chaves para esse valor.

Dispose()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
Dispose(Boolean)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
Elements()

Retorna uma enumeração dos valores nesta hashtable.

EntrySet()

Retorna uma Set exibição dos mapeamentos contidos neste mapa.

Equals(Object)

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

(Herdado de Object)
ForEach(IBiConsumer)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

Get(Object)

Retorna o valor para o qual a chave especificada é mapeada ou null se esse mapa não contiver nenhum mapeamento para a chave.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
GetOrDefault(Object, Object)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Keys()

Retorna uma enumeração das chaves nesta hashtable.

KeySet()

Retorna uma Set exibição das chaves contidas neste mapa.

Merge(Object, Object, IBiFunction)

A ser adicionado

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Put(Object, Object)

Mapeia o especificado key para o especificado value nesta tabela de hash.

PutAll(IDictionary)

Copia todos os mapeamentos do mapa especificado para esta tabela de hash.

PutIfAbsent(Object, Object)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

Rehash()

Aumenta a capacidade e reorganiza internamente esta hashtable, a fim de acomodar e acessar suas entradas de forma mais eficiente.

Remove(Object)

Remove a chave (e seu valor correspondente) dessa tabela de hash.

Remove(Object, Object)

Remove a chave (e seu valor correspondente) dessa tabela de hash.

Replace(Object, Object)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

Replace(Object, Object, Object)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

ReplaceAll(IBiFunction)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
Size()

Retorna o número de chaves nesta tabela de hash.

ToArray<T>()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
Values()

Retorna uma Collection exibição dos valores contidos neste mapa.

Wait()

Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

IJavaPeerable.Disposed()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.Finalized()

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

(Herdado de Object)

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)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

GetJniTypeName(IJavaPeerable)

Essa classe implementa uma tabela de hash, que mapeia chaves para valores.

Aplica-se a