Hashtable em Java

Hashtable em Java
Uma tabela de hash é para pares de chave/valor. Internamente, os valores são armazenados em uma matriz. Cada chave é convertida em um índice da matriz. Esta conversão é conhecida como hashing. Isso é feito por uma função de hash internamente. Em outras palavras, as chaves não precisam ser armazenadas. Tudo isso é a mesa de hash, em Java e em outras linguagens de computador. Este artigo explica dois construtores do Java Hastable e seus métodos comumente usados.

As cinco linhas a seguir mostram palavras e seus significados:

call: para deixar alguém relaxado e calmo
Luz: a energia do sol
Trevas: ausência de luz
Pai: uma palavra menos formal para o pai
Cook: uma pessoa cujo trabalho é cozinhar

Cada palavra pode ser considerada uma chave, e cada significado pode ser considerado um valor. Esta lista de pares de chave/valor será usada ao longo deste artigo. A classe hashtable está no java.util.* pacote, que deve ser importado.

Conteúdo do artigo

  • Construção
  • Acessando pares de chave/valor
  • Lista de retorno da hashtable
  • Convertendo o conjunto de pares de chave/valor em string
  • Conclusão

Construção
Hashtable público ()

Este método constrói uma tabela de hash vazia. O programa a seguir cria uma hashtable vazia, chamada dic (para dicionário) e depois dê cinco pares de chave/valor.

importar java.util.*;
classe pública theClass
public static void main (string [] args)
Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");

Observe que o tipo de chave deve ser indicado nas laterais esquerda e direita da declaração do construtor. O tipo de valor também deve ser indicado em ambos os lados. A classe Java Hashtable possui o método put () para colocar um par de chave/valor na mesa de hash.

Hashtable público (mapa t)

Este método construtor criaria uma hashtable a partir de outro hashtable. O nome da hashtable do código acima é DIC. Outra hashtable pode ser criada a partir da DIC da seguinte forma:

Hashtable dic2 = novo hashtable(dic);

A nova hashtable é dic2. No momento, ele tem todos os elementos (pares de chave/valor) da hashtable dic.

Acessando pares de chave/valor
public V put (K -Key, V Valor)

Este método coloca um par de chave/valor na hashtable. Ele retorna o valor anterior da chave especificada desta hashtable, ou nula se a chave não tivesse um valor. O código a seguir ilustra o seguinte:

Hashtable hshtbl = novo hashtable();
String antigaValue1 = hshtbl.put ("azul", "ter a cor do mar em um dia claro");
Sistema.fora.println (OldValue1);
String antigaValue2 = hshtbl.put ("azul", "cor de um céu claro em um dia claro");
Sistema.fora.println (OldValue2);

A saída é:

nulo
tendo a cor do mar em um dia claro

public void Putall (mapa T)

Este método coloca outro hashtable na hashtable de interesse. Ele retorna vazio. Imagine que a hashtable acima, o DIC já está no programa. Imagine que outro hashtable DIC3, com o conteúdo a seguir, também já está no programa:

"azul" = "cor de um céu claro em um dia claro",
"Vector" = "Um curso realizado por uma aeronave"

Todo o conteúdo do DIC3 pode ser incluído no DIC, com a seguinte declaração:

dic.Putall (DIC3);

Public int size ()

Este método retorna o número de chaves para a hashtable. O código a seguir ilustra o seguinte:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
int sz = dic.tamanho();
Sistema.fora.println (sz);

A saída é 5.

public V Get (chave do objeto)

Este método retorna o valor para o qual a chave especificada foi hashed ou nula se a chave não for hash de nenhum valor (índice de matriz). O código a seguir ilustra o seguinte:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
Sistema.fora.println (dic.obtenha ("call"));
Sistema.fora.println (dic.obtenha ("luz"));
Sistema.fora.println (dic.obter ("vetor"));

A saída é:

Para deixar alguém relaxado e calmo
a energia do sol
nulo

public V Remover (chave do objeto)

Este método remove a chave e seu valor correspondente, da hashtable. Ele retorna o valor para a chave, ou nulo se a chave não estiver presente, o código a seguir ilustra o seguinte:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
String ret1 = dic.remover ("escuridão");
String ret2 = dic.remover ("escuridão");
Sistema.fora.println (ret1);
Sistema.fora.println (ret2);

A saída é:

ausência de luz
nulo

público booleano isempty ()

Retorna true se a hashtable não tiver hash de chave para um valor (índice de matriz); e falso caso contrário. O código a seguir mostra como usar este método:

Hashtable dic4 = novo hashtable();
booleano bl = dic4.está vazia();
Sistema.fora.println (bl);

A saída é verdadeira.

public void Clear ()

Este método limpa todos os pares de chave/valor na hashtable. O tamanho da hashtable se torna zero. O código a seguir mostra seu uso:

Hashtable dic5 = novo hashtable();
dic5.put ("azul", "cor de um céu claro em um dia claro");
dic5.put ("vetor", "um curso realizado por uma aeronave");
dic5.claro();
Sistema.fora.println (dic5.tamanho());

A saída é 0.

Lista de retorno da hashtable
elementos de enumeração pública ()

Este método retorna uma enumeração dos valores da hashtable. A classe de enumeração tem seus métodos. O código a seguir mostra como obter uma enumeração de valores da hashtable e como usar os métodos de enumeração, para ler os valores:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
Enumeração e = dic.elementos ();
enquanto (e.hasMoreElements () == true)
String str = e.nextElement ();
Sistema.fora.println (str);

A saída é:

Uma pessoa cujo trabalho é cozinhar
uma palavra menos formal para o pai
a energia do sol
ausência de luz
Para deixar alguém relaxado e calmo

Observe que a ordem de saída não é a ordem de entrada. É assim que a hashtable em Java funciona.

Chaves de enumeração pública ()

Este método retorna uma enumeração das chaves da hashtable. A classe de enumeração tem seus métodos. O código a seguir como obter uma enumeração de chaves da hashtable e como usar os métodos de enumeração para ler as chaves:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
Enumeração e = dic.chaves();
enquanto (e.hasMoreElements () == true)
String str = e.nextElement ();
Sistema.fora.println (str);

A saída é:

cozinhar
pai
luz
escuridão
calmaria

Observe que a ordem de saída não é a ordem de entrada. É assim que a hashtable em Java funciona. A chave é realmente hash de um índice (número) de uma matriz, cujo conteúdo celular é o valor.

conjunto público Entryset ()

Este método retorna uma coleção de visualização de pares de chave/valor, da hashtable. O código a seguir mostra como lidar com o conjunto de retorno, dos pares de chave/valor e como imprimir todos os pares de chave/valor:

Hashtable dic = novo hashtable();
dic.Put ("call", "para deixar alguém relaxado e calmo"); dic.put ("luz", "a energia do sol");
dic.put ("escuridão", "ausência de luz"); dic.put ("pai", "uma palavra menos formal para o pai");
dic.Put ("Cook", "uma pessoa cujo trabalho é cozinhar");
Definir> C = DIC.entrada de entrada ();
Iterador> iter = c.iterator ();
enquanto (iter.hasNext () == true)
Mapa.Entrada kv = iter.próximo();
Sistema.fora.println (kv.getKey () + ":" + kV.Obter valor());

A saída é:

Cook: uma pessoa cujo trabalho é cozinhar
Pai: uma palavra menos formal para o pai
Luz: a energia do sol
Trevas: ausência de luz
call: para deixar alguém relaxado e calmo

Embora os valores correspondentes para chaves tenham sido mantidos, a ordem de saída não é a ordem de entrada. É assim que a hashtable em Java funciona.

Convertendo o conjunto de pares de chave/valor em string
public string tostring ()

Este método converte todos os pares de chave/valor da hashtable, em uma corda longa. Não importa, se os tipos de chaves ou valores não eram strings. Isso é ilustrado pelo seguinte código:

Hashtable ht = novo hashtable();
ht.put ("dez", 10);
ht.put ("vinte", 20);
ht.put ("trinta", 30);
String str = ht.para sequenciar();
Sistema.fora.println (str);

A saída é:

vinte = 20, dez = 10, trinta = 30

Conclusão

A Hash-Table é um mapa de pares de chave/valor. Internamente, uma chave é realmente hash no índice de uma matriz. O valor desse índice é o valor do par de chaves/valor. O hashtable é uma aula no java.util.* pacote, que deve ser importado antes de sua construção e outros métodos, pode ser usado.