Hashtable Classe
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.
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 ConcurrentModificationException
arquivo . 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 |
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 |
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 |
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 |
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 |
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 |
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. |