what is java hashtable hashtable implementation example
Este tutorial explica qué es una HashTable de Java, los constructores y los métodos de la clase Hashtable, implementación y Hashtable vs Hashmap:
¿Qué es una HashTable?
Una tabla hash en Java es una matriz de elementos que son listas. Cada una de estas listas se denomina Cubeta .
Asigna las claves a los valores. En Java, la tabla hash es implementada por la clase 'HashTable'. Esta clase implementa la interfaz del mapa y hereda la clase de diccionario.
=> Consulte la guía de formación de Java perfecta aquí.
Algunas de las características únicas de Hashtable en Java son las siguientes:
- Es una matriz que contiene listas o depósitos como elementos.
- Tiene elementos únicos.
- No hay una clave nula ni un valor nulo en la tabla hash.
- Es similar a Hashmap pero está sincronizado.
Lo que vas a aprender:
Clase HashTable en Java
En Java, esta clase es miembro del paquete java.util. Por lo tanto, tenemos que incluir una de las siguientes declaraciones en nuestro programa para incluir la funcionalidad de la clase HashTable.
import java.util.*;
O
import java.util.HashTable;
A continuación se proporciona una declaración de clase general para la clase java.util.HashTable:
|_+_|Aquí,
- K => tipo de claves del HashTable
- V => tipo de valores mapeados
La API de la clase HashTable consta de constructores que se utilizan para construir los objetos de la clase y las diversas operaciones o métodos que forman parte de la clase, lo que produce un funcionamiento fluido de la clase HashTable.
Constructores de la clase HashTable
Prototipo de constructor | Descripción | |
---|---|---|
Colocar | Colocar | Devuelve una vista establecida de las asignaciones contenidas en el mapa. |
Tabla de picadillo () | Constructor predeterminado: crea un objeto de clase HashTable con capacidad y factor de carga predeterminados iniciales. | |
Hashtable (capacidad int) | Crea una tabla hash con la capacidad inicial especificada. | |
Hashtable (capacidad int, factor de carga flotante) | Crea un objeto de tabla hash con la capacidad inicial = capacidad y factor de carga = factor de carga. | |
Hashtable (mapa t) | Crea una nueva tabla hash a partir del mapa especificado como argumento. |
Métodos de la clase HashTable
Método | Prototipo de método | Descripción |
---|---|---|
claro | vacío claro () | Borra HashTable restableciendo los valores. |
clon | Clonar objeto () | Hace una copia superficial del objeto HashTable y lo devuelve. |
calcular | V compute (tecla K, función de reasignación de BiFunction) | Calcula el mapeo entre la clave dada y el valor usando la función de reasignación. |
computeIfAbsent | V computeIfAbsent (tecla K, función de mapeo de funciones) | Calcula el mapeo entre la clave dada y el valor usando la función de reasignación si la clave especificada aún no está asociada con el valor dado. |
computeIfPresent | V computeIfPresent (tecla K, función de reasignación BiFunction) | Si la clave dada está presente, la función de reasignación se usa para calcular una nueva asignación entre la clave dada y el valor. |
elementos | Elementos de enumeración () | Devuelve una enumeración de los valores en la tabla hash. |
es igual a | booleano es igual a (Objeto o) | Compara el objeto dado con HashTable. |
para cada | void forEach (acción BiConsumer) | La acción dada se realiza para cada uno de los elementos HashTable hasta que se agotan todos los elementos. |
getOrDefault | V getOrDefault (clave de objeto, V defaultValue) | Devuelve el valor al que se asigna la clave especificada o defaultValue si el mapa no contiene ninguna asignación para la clave. |
código hash | int hashCode () | Devuelve el código hash de HashTable. |
teclas | Claves de enumeración () | Devuelve claves en HashTable como una enumeración. |
juego de llaves | Establecer keySet () | Devuelve el conjunto de claves (claves como conjunto) para HashTable. |
Vamos | V fusionar (tecla K, valor V, función de reasignación de BiFunction) | Asigna la clave dada con el valor no nulo usando la función de reasignación si la clave no está presente o es nula. |
poner | V poner (tecla K, valor V) | Inserta un nuevo par clave-valor en HashTable. |
poner todo | void putAll (Mapa t)) | Pone o copia los pares clave-valor del mapa dado en HashTable. |
putIfAbsent | V putIfAbsent (tecla K, valor V) | Asocia la clave dada con el valor nulo si la clave aún no está presente o asociada con nulo. |
retirar | boolean remove (clave de objeto, valor de objeto) | Elimina el par clave-valor proporcionado de HashTable. |
reemplazar | Reemplazo de V (tecla K, valor de V) | Reemplaza el valor de la clave dada con el valor especificado. |
reemplazar | reemplazo booleano (tecla K, V oldValue, V newValue) | Reemplaza el valor anterior de la clave dada por el nuevo valor. |
reemplaza todo | void replaceAll (función BiFunction) | Todas las entradas en HashTable se reemplazan por el valor que se obtiene al evaluar la función dada. |
Encadenar | Cadena toString () | Convierte el objeto HashTable en su representación de cadena. |
valores | Valores de colección () | Devuelve los valores de HashTable como una colección. |
contiene | booleano contiene (valor del objeto) | Comprueba si el valor dado está presente en HashTable. Devuelve verdadero si está presente de lo contrario devuelve falso. |
contiene valor | boolean containsValue (valor del objeto) | Comprueba si hay un valor igual al valor dado en HashTable y devuelve verdadero. |
contiene clave | boolean containsKey (clave de objeto) | Comprueba si hay alguna clave igual a la clave dada en HashTable y devuelve verdadero en caso afirmativo. |
esta vacio | boolean isEmpty () | Comprueba si la HashTable proporcionada está vacía y devuelve verdadero en caso afirmativo. |
refrito | Rehash vacío protegido () | Se utiliza para aumentar el tamaño de la tabla hash y repite todas sus claves. |
obtener | V get (clave de objeto) | Recupera el valor de la clave dada. |
retirar | V eliminar (tecla de objeto) | Elimina la clave y el valor dados y devuelve este valor. |
Talla | int tamaño () | Devuelve el tamaño o la cantidad de elementos presentes en HashTable. |
Implementación de HashTable
A continuación se muestra la implementación de la clase en Java. Aquí hemos demostrado todos los métodos importantes proporcionados por la clase.
nuevo servidor privado de world of warcraft|_+_|
Producción:
El contenido de Hashtable:
104: azul
103: marrón
102: naranja
101: verde
100 : Red
Valor hashtable en 101: verde
Valor hashtable en 105: valor no encontrado
Después de eliminar (102), la tabla hash: {104 = azul, 103 = marrón, 101 = verde, 100 = rojo}
Tabla hash actualizada: {104 = azul, 103 = marrón, 102 = naranja, 101 = verde, 100 = rojo}
Ejemplo de Java HashTable
En este programa, definimos una tabla hash con las claves como los nombres del titular de la cuenta con sus respectivos saldos de cuenta como valores. Primero, recuperamos las claves de HashTable como una enumeración. Luego, usando esta enumeración, imprimimos los pares clave-valor de HashTable.
Posteriormente, actualizamos el saldo de la cuenta de uno de los titulares e imprimimos el monto actualizado.
El programa que se muestra a continuación muestra esta implementación.
|_+_|Producción:
El Hashtable del saldo de la cuenta:
VALOR CLAVE
Santiago 78.48
Ben 95.43
Dillon 499.22
Lirio 4367.34
Encaje 1200.0
Saldo de la nueva cuenta de Ben: 1095,43
Hashtable Vs Hashmap
Tabla de picadillo | HashMap |
---|---|
HashTable es lento de ejecutar. | HashMap es más rápido. |
Hereda la clase de diccionario. | Hereda la clase AbstractMap. |
Es una clase heredada. | Clase HashMap introducida en JDK 1.2 |
Sincronizado y seguro para subprocesos. | No sincronizado y no seguro para subprocesos. |
Está sincronizado internamente y no se puede deshacer. | Se puede sincronizar mediante el método Collections.synchronizedMap. |
No se permite clave / valor nulo. | Permite clave nula y múltiples valores nulos. |
Se puede recorrer utilizando Enumerator e Iterator. | Se puede atravesar solo con Iterator. |
Preguntas frecuentes
P # 1) ¿Qué es Hashtable en Java?
Responder: Es una clase heredada que hereda la clase 'diccionario' y almacena pares clave-valor.
Q #2) ¿Por qué se usa Hashtable?
Responder: Se utiliza para almacenar pares clave-valor. Entonces, cuando necesitamos almacenar los pares clave-valor en el formato tabular, optamos por HashTable. En segundo lugar, puede almacenar varios valores para la misma clave mediante depósitos. La recuperación de datos es eficiente en HashTables.
Q #3)¿Cómo se crea una tabla hash en Java?
Responder: Puede crearlo creando una instancia de un objeto de la clase java.util.HashTable.
|_+_|La declaración anterior crea una HashTable llamada 'hashTable' con claves y valores de tipo String.
Q #4) ¿Hashtable es seguro para subprocesos?
Responder: Sí, es seguro para subprocesos. En caso de que no se requiera seguridad para subprocesos, podemos optar por HashMap.
Q #5) ¿Cómo funciona Hashtable internamente en Java con un ejemplo?
Responder: Internamente, almacena pares clave-valor en una estructura llamada cubos. La posición del depósito está determinada por el código hash de la clave. La función hash obtiene la ubicación del depósito mediante el código hash de la clave.
Conclusión
HashTable consta de datos almacenados en forma de pares clave-valor. Las claves o valores no pueden ser nulos. En Java, se implementa mediante la clase HashTable.
Hemos visto los constructores y métodos proporcionados por la clase HashTable junto con la implementación de HashTable en lenguaje Java.
En nuestro próximo tutorial, discutiremos la colección HashMap.
dirección de correo electrónico falsa que puedo usar
=> Visite aquí para ver la serie exclusiva de tutoriales de formación en Java.
Lectura recomendada
- Tutorial de reflexión de Java con ejemplos
- Tutorial de la clase Java Scanner con ejemplos
- Conceptos básicos de Java: sintaxis de Java, clase de Java y conceptos básicos de Java
- ¿Qué es Java Vector | Tutorial de clase de vector de Java con ejemplos
- Tutorial de Java SWING: contenedor, componentes y manejo de eventos
- Tutorial de clase de matriz de Java - clase java.util.Arrays con ejemplos
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Tutorial del método Java String contains () con ejemplos