La classe Java Hashtable implementa una taula hash, que mapeja claus amb valors. Hereta la classe Dictionary i implementa la interfície Map.
Punts a recordar
- Una taula hash és una matriu d'una llista. Cada llista es coneix com una galleda. La posició del cub s'identifica cridant al mètode hashcode(). Una taula hash conté valors basats en la clau.
- La classe Java Hashtable conté elements únics.
- La classe Java Hashtable no permet la clau o el valor nul.
- La classe Java Hashtable està sincronitzada.
- La capacitat inicial per defecte de la classe Hashtable és 11 mentre que loadFactor és 0,75.
Declaració de classe hashtable
Vegem la declaració de la classe java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Paràmetres de classe hashtable
Vegem els paràmetres de la classe java.util.Hashtable.
Constructors de la classe Java Hashtable
Constructor | Descripció |
---|---|
Taula hash () | Crea una taula hash buida amb la capacitat inicial i el factor de càrrega predeterminats. |
Taula hash (capacitat int) | Accepta un paràmetre enter i crea una taula hash que conté una capacitat inicial especificada. |
Taula hash (capacitat int, factor de càrrega flotant) | S'utilitza per crear una taula hash amb la capacitat inicial i loadFactor especificats. |
Taula hash (mapa t) | Crea una nova taula hash amb els mateixos mapes que el mapa donat. |
Mètodes de classe Java Hashtable
Mètode | Descripció |
---|---|
buit clar () | S'utilitza per restablir la taula hash. |
Clon d'objecte() | Retorna una còpia superficial de la taula hash. |
Càlcul V (tecla K, funció de reasignació de BiFunction) | S'utilitza per calcular un mapeig per a la clau especificada i el seu valor assignat actual (o nul si no hi ha mapeig actual). |
V computeIfAbsent (tecla K, funció mappingFunction) | S'utilitza per calcular el seu valor mitjançant la funció de mapeig donada, si la clau especificada encara no està associada a un valor (o està assignada a nul), i l'introdueix en aquest mapa tret que sigui nul. |
V computeIfPresent (tecla K, funció de reasignació de BiFunction) | S'utilitza per calcular una assignació nova donada la clau i el seu valor assignat actual si el valor de la clau especificada és present i no és nul. |
Elements d'enumeració () | Retorna una enumeració dels valors de la taula hash. |
Conjunt | Retorna una vista conjunta dels mapes continguts al mapa. |
booleà iguals (Objecte o) | S'utilitza per comparar l'objecte especificat amb el mapa. |
void forEach (acció biconsumidor) | Realitza l'acció donada per a cada entrada del mapa fins que s'han processat totes les entrades o l'acció genera una excepció. |
V getOrDefault (clau d'objecte, V defaultValue) | Retorna el valor al qual està assignada la clau especificada, o defaultValue si el mapa no conté cap assignació per a la clau. |
int hashCode() | Retorna el valor del codi hash per al mapa |
Tecles d'enumeració () | Retorna una enumeració de les claus a la taula hash. |
Estableix keySet() | Retorna una vista conjunta de les claus contingudes al mapa. |
Combinació V (clau K, valor V, funció de reasignació de BiFunction) | Si la clau especificada encara no està associada amb un valor o està associada amb null, l'associa amb el valor no nul donat. |
V posat (clau K, valor V) | Insereix el valor especificat amb la clau especificada a la taula hash. |
void putAll(Mapa t)) | S'utilitza per copiar tota la parella clau-valor del mapa a la taula hash. |
V putIfAbsent (clau K, valor V) | Si la clau especificada encara no està associada amb un valor (o està assignada a null) l'associa amb el valor donat i retorna null, en cas contrari retorna el valor actual. |
eliminació booleana (clau de l'objecte, valor de l'objecte) | Elimina els valors especificats amb les claus especificades associades de la taula hash. |
Reemplaça V (clau K, valor V) | Substitueix el valor especificat per a una clau especificada. |
substitució booleana (clau K, V valor antic, V valor nou) | Substitueix el valor antic amb el nou valor per a una clau especificada. |
void replaceAll (funció BiFunction) | Substitueix el valor de cada entrada amb el resultat d'invocar la funció donada en aquesta entrada fins que s'hagin processat totes les entrades o la funció llança una excepció. |
String toString() | Retorna una representació de cadena de l'objecte Hashtable. |
Valors de la col·lecció() | Retorna una vista de col·lecció dels valors continguts al mapa. |
booleà conté (valor de l'objecte) | Aquest mètode retorna true si hi ha algun valor igual al valor dins de la taula hash, en cas contrari retorna false. |
boolean containsValue (Valor de l'objecte) | Aquest mètode retorna true si hi ha algun valor igual al valor dins de la taula hash, en cas contrari retorna false. |
boolean containsKey (clau d'objecte) | Aquest mètode retorna true si alguna clau igual a la clau existeix a la taula hash, en cas contrari retorna false. |
booleà és buit () | Aquest mètode retorna true si la taula hash està buida; retorna false si conté almenys una clau. |
protegit void rehash() | S'utilitza per augmentar la mida de la taula hash i repetir totes les seves claus. |
V get (clau d'objecte) | Aquest mètode retorna l'objecte que conté el valor associat a la clau. |
V elimina (clau d'objecte) | S'utilitza per eliminar la clau i el seu valor. Aquest mètode retorna el valor associat a la clau. |
mida int () | Aquest mètode retorna el nombre d'entrades a la taula hash. |
Exemple de taula hash de Java
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Prova-ho ara
Sortida:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Exemple de taula hash de Java: remove()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
Sortida:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Exemple de taula hash de Java: getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
Sortida:
Vijay Not Found
Exemple de taula hash de Java: putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
Sortida:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
Exemple de taula hash de Java: llibre
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Sortida:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8