Java Hashtable trieda implementuje hashtable, ktorý mapuje kľúče na hodnoty. Zdedí triedu Dictionary a implementuje rozhranie Map.
Body na zapamätanie
- Hashtable je pole zoznamu. Každý zoznam je známy ako vedro. Pozícia vedra sa identifikuje volaním metódy hashcode(). Hashtable obsahuje hodnoty založené na kľúči.
- Trieda Java Hashtable obsahuje jedinečné prvky.
- Trieda Java Hashtable nepovoľuje nulový kľúč alebo hodnotu.
- Trieda Java Hashtable je synchronizovaná.
- Počiatočná predvolená kapacita triedy Hashtable je 11, zatiaľ čo loadFactor je 0,75.
Deklarácia hashtable triedy
Pozrime sa na deklaráciu pre triedu java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Parametre triedy hashtable
Pozrime sa na Parameters pre triedu java.util.Hashtable.
Konštruktory triedy Java Hashtable
Konštruktér | Popis |
---|---|
Hashtable() | Vytvorí prázdnu hašovaciu tabuľku s počiatočnou predvolenou kapacitou a faktorom zaťaženia. |
Hashtable (int kapacita) | Prijíma celočíselný parameter a vytvára hašovaciu tabuľku, ktorá obsahuje zadanú počiatočnú kapacitu. |
Hashtable (int kapacita, float loadFactor) | Používa sa na vytvorenie hašovacej tabuľky so zadanou počiatočnou kapacitou a faktorom zaťaženia. |
Hashtable (mapa t) | Vytvorí novú hašovaciu tabuľku s rovnakým mapovaním ako daná mapa. |
Metódy triedy Java Hashtable
Metóda | Popis |
---|---|
void clear() | Používa sa na resetovanie hašovacej tabuľky. |
Object clone() | Vracia plytkú kópiu Hashtable. |
V compute (kľúč K, BiFunction remappingFunction) | Používa sa na výpočet mapovania pre zadaný kľúč a jeho aktuálnu mapovanú hodnotu (alebo null, ak neexistuje žiadne aktuálne mapovanie). |
V computeIfAbsent (kláves K, funkcia mapovania funkcií) | Používa sa na výpočet jeho hodnoty pomocou danej mapovacej funkcie, ak zadaný kľúč ešte nie je priradený k hodnote (alebo je namapovaný na hodnotu null), a vloží ho do tejto mapy, pokiaľ nie je null. |
V computeIfPresent (kľúč K, BiFunction remappingFunction) | Používa sa na výpočet nového mapovania daného kľúča a jeho aktuálnej namapovanej hodnoty, ak je hodnota pre zadaný kľúč prítomná a nie je nulová. |
Enumeration elements() | Vráti zoznam hodnôt v hašovacej tabuľke. |
Set | Vráti nastavený pohľad na mapovania obsiahnuté v mape. |
boolean rovná sa (objekt o) | Používa sa na porovnanie určeného objektu s mapou. |
neplatné pre každého (akcia BiConsumer) | Vykonáva danú akciu pre každý záznam na mape, kým nie sú spracované všetky záznamy alebo akcia nevyvolá výnimku. |
V getOrDefault (kľúč objektu, V predvolená hodnota) | Vráti hodnotu, na ktorú je zadaný kľúč namapovaný, alebo defaultValue, ak mapa neobsahuje žiadne mapovanie pre kľúč. |
int hashCode() | Vráti hodnotu hash kódu pre mapu |
Enumeračné kľúče() | Vráti zoznam kľúčov v hašovacej tabuľke. |
Set keySet() | Vráti zobrazenie Set kľúčov obsiahnutých na mape. |
V zlúčenie (kľúč K, hodnota V, funkcia premapovania BiFunction) | Ak zadaný kľúč ešte nie je priradený k hodnote alebo je priradený k hodnote null, priradí ho k danej hodnote, ktorá nie je nulová. |
V put (kľúč K, hodnota V) | Vloží zadanú hodnotu so zadaným kľúčom do hašovacej tabuľky. |
void putAll(Map t)) | Používa sa na skopírovanie všetkých párov kľúč – hodnota z mapy do hašovacej tabuľky. |
V putIfAbsent (kľúč K, hodnota V) | Ak zadaný kľúč ešte nie je priradený k hodnote (alebo je namapovaný na hodnotu null), priradí ho k danej hodnote a vráti hodnotu null, inak vráti aktuálnu hodnotu. |
booleovské odstránenie (kľúč objektu, hodnota objektu) | Z hašovacej tabuľky odstráni zadané hodnoty s priradenými špecifikovanými kľúčmi. |
V nahradiť (kľúč K, hodnota V) | Nahrádza zadanú hodnotu za zadaný kľúč. |
boolovské nahradenie (kľúč K, V stará hodnota, V nová hodnota) | Nahradí starú hodnotu novou hodnotou pre zadaný kľúč. |
void nahradiť všetko (funkcia BiFunction) | Nahrádza hodnotu každej položky výsledkom vyvolania danej funkcie na tejto položke, kým nie sú spracované všetky položky alebo funkcia nevyvolá výnimku. |
String toString() | Vracia reťazcovú reprezentáciu objektu Hashtable. |
Hodnoty zbierky () | Vráti zobrazenie kolekcie hodnôt obsiahnutých v mape. |
boolean obsahuje (hodnota objektu) | Táto metóda vráti hodnotu true, ak v hašovacej tabuľke existuje nejaká hodnota rovnajúca sa hodnote, inak vráti hodnotu false. |
boolean obsahujeHodnotu (hodnota objektu) | Táto metóda vráti hodnotu true, ak v hašovacej tabuľke existuje nejaká hodnota rovnajúca sa hodnote, inak vráti hodnotu false. |
boolean obsahuje kľúč (kľúč objektu) | Táto metóda vráti hodnotu true, ak v hašovacej tabuľke existuje nejaký kľúč rovný kľúču, inak vráti hodnotu false. |
boolean isEmpty() | Táto metóda vráti hodnotu true, ak je hašovacia tabuľka prázdna; vráti hodnotu false, ak obsahuje aspoň jeden kľúč. |
chránená void rehash() | Používa sa na zväčšenie veľkosti hašovacej tabuľky a prepracovanie všetkých jej kľúčov. |
V get (kľúč objektu) | Táto metóda vráti objekt, ktorý obsahuje hodnotu priradenú ku kľúču. |
V odstrániť (kľúč objektu) | Používa sa na odstránenie kľúča a jeho hodnoty. Táto metóda vráti hodnotu spojenú s kľúčom. |
int size() | Táto metóda vráti počet záznamov v hašovacej tabuľke. |
Príklad Java Hashtable
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()); } } }Vyskúšajte to
Výkon:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Príklad hašovacej tabuľky 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); } }
Výkon:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Príklad hashtable 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')); } }
Výkon:
Vijay Not Found
Príklad hašovacej tabuľky 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); } }
Výkon:
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}
Príklad Java Hashtable: Kniha
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); } } }
Výkon:
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