Hashtable en Java

Hashtable en Java
Una tabla hash es para pares de clave/valor. Internamente, los valores se almacenan en una matriz. Cada clave se convierte en un índice de la matriz. Esta conversión se conoce como hash. Se realiza por una función hash internamente. En otras palabras, las teclas no tienen que almacenarse. Todo lo que es la mesa del hash, en Java y en otros lenguajes de computadora. Este artículo explica dos constructores de Java Hastable y sus métodos comúnmente utilizados.

Las siguientes cinco líneas muestran palabras y sus significados:

calma: hacer que alguien se relaje y tranquilo
Luz: la energía del sol
Oscuridad: ausencia de luz
Papá: una palabra menos formal para el padre
Cook: una persona cuyo trabajo es cocinar

Cada palabra puede considerarse una clave, y cada significado puede considerarse un valor. Esta lista de pares de clave/valor se utilizará a lo largo de este artículo. La clase de hashtable está en el Java.utilizar.* Paquete, que debe importarse.

Contenido del artículo

  • Construcción
  • Acceso a pares de clave/valor
  • Lista de devolución de hashtable
  • Convertir el conjunto de pares de clave/valor a cadena
  • Conclusión

Construcción
Hashtable público ()

Este método construye una tabla hash vacía. El siguiente programa crea una hashtable vacía, llamada DIC (para diccionario), y luego le da cinco pares de clave/valor.

importar java.utilizar.*;
clase pública THECLASS
public static void main (string [] args)
Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");

Tenga en cuenta que el tipo de clave debe indicarse en los lados izquierdo y derecho de la declaración del constructor. El tipo de valor también debe indicarse en ambos lados. La clase de hashtable Java tiene el método put () para poner un par de clave/valor en la tabla hash.

Hashtable público (mapa t)

Este método del constructor crearía una hashtable de otro hashtable. El nombre del hashtable del código anterior es DIC. Se puede crear otro hashtable a partir de DIC de la siguiente manera:

Tabla de picadillo Dic2 = nuevo hashtable(Dic);

La nueva hashtable es DIC2. Por el momento, tiene todos los elementos (pares de clave/valor) de la hashtable DIC.

Acceso a pares de clave/valor
Public V Put (K Key, V valor)

Este método pone un par de clave/valor en la hashtable. Devuelve el valor anterior de la clave especificada de este hashtable, o nulo si la clave no tenía un valor. El siguiente código ilustra esto:

Tabla de picadillo hshtbl = nueva hashtable();
String OldValue1 = HSHTBL.poner ("azul", "tener el color del mar en un día despejado");
Sistema.afuera.println (OldValue1);
Cadena OldValue2 = HSHTBL.poner ("azul", "color de un cielo claro en un día despejado");
Sistema.afuera.println (OldValue2);

La salida es:

nulo
Tener el color del mar en un día despejado

Public Void Putall (Mapa T)

Este método coloca a otro hashtable en la hashtable de interés. Devuelve nulo. Imagine que la hashtable anterior, DIC ya está en el programa. Imagine que otro hashtable, DIC3, con el siguiente contenido, también está en el programa:

"azul" = "color de un cielo claro en un día despejado",
"Vector" = "Un curso tomado por un avión"

Todo el contenido de DIC3 se puede incluir en DIC, con la siguiente declaración:

DIC.Putall (DIC3);

Public int size ()

Este método devuelve el número de claves para el hashtable. El siguiente código ilustra esto:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
int sz = DIC.tamaño();
Sistema.afuera.println (SZ);

La salida es 5.

Public v Get (clave de objeto)

Este método devuelve el valor al que se ha asaltado la clave especificada, o NULL si la clave no se ha hecho a ningún valor (índice de matriz). El siguiente código ilustra esto:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
Sistema.afuera.println (DIC.Get ("Lull"));
Sistema.afuera.println (DIC.Get ("Light"));
Sistema.afuera.println (DIC.get ("vector"));

La salida es:

Para hacer que alguien se relaje y calme
la energía del sol
nulo

Public V Retem (clave de objeto)

Este método elimina la clave y su valor correspondiente, de la hashtable. Devuelve el valor para la clave, o nulo si la clave no estaba presente, el siguiente código ilustra esto:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
Cadena ret1 = DIC.eliminar ("oscuridad");
Cadena ret2 = DIC.eliminar ("oscuridad");
Sistema.afuera.println (ret1);
Sistema.afuera.println (ret2);

La salida es:

ausencia de luz
nulo

Public Boolean isEmpty ()

Devuelve verdadero si la Tabla hash no tiene la clave de un valor (índice de matriz); y falso de lo contrario. El siguiente código muestra cómo usar este método:

Tabla de picadillo Dic4 = nuevo hashtable();
Booleano BL = DIC4.esta vacio();
Sistema.afuera.println (bl);

La salida es verdadera.

Public Void Clear ()

Este método borra todos los pares de clave/valor en el hashtable. El tamaño del hashtable se convierte en cero. El siguiente código muestra su uso:

Tabla de picadillo Dic5 = nuevo hashtable();
DIC5.poner ("azul", "color de un cielo claro en un día despejado");
DIC5.poner ("vector", "un curso tomado por un avión");
DIC5.claro();
Sistema.afuera.println (DIC5.tamaño());

La salida es 0.

Lista de devolución de hashtable
Elementos de enumeración pública ()

Este método devuelve una enumeración de los valores del hashtable. La clase de enumeración tiene sus métodos. El siguiente código muestra cómo obtener una enumeración de los valores de la HAESTABLE y cómo usar los métodos de enumeración para leer los valores:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
Enumeración E = DIC.elementos();
mientras (e.HasmoreElements () == True)
Cadena str = e.nextElement ();
Sistema.afuera.println (str);

La salida es:

una persona cuyo trabajo es cocinar
Una palabra menos formal para el padre
la energía del sol
ausencia de luz
Para hacer que alguien se relaje y calme

Observe que el orden de salida no es el orden de entrada. Así es como funciona la puesta en Java.

Public Enumeration Keys ()

Este método devuelve una enumeración de las claves de la hábil hábil. La clase de enumeración tiene sus métodos. El siguiente código cómo es cómo obtener una enumeración de claves de la hábil hábil y cómo usar los métodos de enumeración para leer las claves:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
Enumeración E = DIC.llaves();
mientras (e.HasmoreElements () == True)
Cadena str = e.nextElement ();
Sistema.afuera.println (str);

La salida es:

cocinar
papá
luz
oscuridad
calma

Observe que el orden de salida no es el orden de entrada. Así es como funciona la puesta en Java. La clave en realidad se ha asado a un índice (número) de una matriz, cuyo contenido de celda es el valor.

conjunto público EntrySet ()

Este método devuelve una colección de visión de establecimiento de pares de clave/valor, de la hábil hábil. El siguiente código muestra cómo manejar el conjunto de retorno, de pares de clave/valor y cómo imprimir todos los pares de teclas/valor:

Tabla de picadillo Dic = nuevo hashtable();
DIC.poner ("calma", "para hacer que alguien se relaje y calme"); DIC.poner ("luz", "la energía del sol");
DIC.poner ("oscuridad", "ausencia de luz"); DIC.poner ("papá", "una palabra menos formal para el padre");
DIC.poner ("cocinar", "una persona cuyo trabajo es cocinar");
Colocar> C = DIC.EntrySet ();
Iterador> iter = c.iterador ();
mientras (iter.HasNext () == True)
Mapa.Entrada kv = iter.próximo();
Sistema.afuera.println (KV.getKey () + ":" + kv.getValue ());

La salida es:

Cook: una persona cuyo trabajo es cocinar
Papá: una palabra menos formal para el padre
Luz: la energía del sol
Oscuridad: ausencia de luz
calma: hacer que alguien se relaje y tranquilo

Aunque se han mantenido los valores correspondientes para las teclas, el orden de salida no es el orden de entrada. Así es como funciona la puesta en Java.

Convertir el conjunto de pares de clave/valor a cadena
Cadena pública ToString ()

Este método convierte todos los pares de clave/valor del hábil hábil, en una cadena larga. No importa, si los tipos de claves o valores no eran cadenas. Esto se ilustra mediante el siguiente código:

Tabla de picadillo ht = nuevo hashtable();
HT.poner ("diez", 10);
HT.poner ("veinte", 20);
HT.poner ("treinta", 30);
Cadena str = ht.Encadenar();
Sistema.afuera.println (str);

La salida es:

veinte = 20, diez = 10, treinta = 30

Conclusión

Una mesa de hash es un mapa de pares de clave/valor. Internamente, una clave se ha asado en el índice de una matriz. El valor de ese índice es el valor del par de clave/valor. El hashtable es una clase en el Java.utilizar.* El paquete, que debe importarse antes de su construcción y otros métodos, se puede utilizar.