Java Hashtable třída implementuje hashtable, který mapuje klíče na hodnoty. Dědí třídu Dictionary a implementuje rozhraní Map.
Body k zapamatování
- Hashtable je pole seznamu. Každý seznam je známý jako kbelík. Pozice bucketu je identifikována voláním metody hashcode(). Hashtable obsahuje hodnoty založené na klíči.
- Třída Java Hashtable obsahuje jedinečné prvky.
- Třída Java Hashtable nepovoluje nulový klíč nebo hodnotu.
- Třída Java Hashtable je synchronizována.
- Počáteční výchozí kapacita třídy Hashtable je 11, zatímco loadFactor je 0,75.
Deklarace třídy hashtable
Podívejme se na deklaraci třídy java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Parametry třídy hashtable
Podívejme se na Parametry třídy java.util.Hashtable.
Konstruktory třídy Java Hashtable
Konstruktér | Popis |
---|---|
Hashtable() | Vytvoří prázdnou hashovací tabulku s výchozí výchozí kapacitou a faktorem zatížení. |
Hashtable (int kapacita) | Přijímá celočíselný parametr a vytváří hashovací tabulku, která obsahuje zadanou počáteční kapacitu. |
Hashtable (int kapacita, float loadFactor) | Používá se k vytvoření hashovací tabulky se zadanou počáteční kapacitou a loadFactor. |
Hashtable (mapa t) | Vytvoří novou hashovací tabulku se stejným mapováním jako daná mapa. |
Metody třídy Java Hashtable
Metoda | Popis |
---|---|
void clear() | Používá se k resetování hash tabulky. |
Object clone() | Vrací mělkou kopii hashtable. |
V compute (klíč K, BiFunction remappingFunction) | Používá se k výpočtu mapování pro zadaný klíč a jeho aktuální mapovanou hodnotu (nebo null, pokud neexistuje žádné aktuální mapování). |
V computeIfAbsent (klávesa K, funkce mapování funkcí) | Používá se k výpočtu její hodnoty pomocí dané mapovací funkce, pokud zadaný klíč ještě není spojen s hodnotou (nebo je namapován na hodnotu null), a vloží ji do této mapy, pokud není null. |
V computeIfPresent (klávesa K, přemapování funkce BiFunction) | Používá se k výpočtu nového mapování daného klíče a jeho aktuální namapované hodnoty, pokud je hodnota pro zadaný klíč přítomna a není nulová. |
Enumeration elements() | Vrátí výčet hodnot v hashovací tabulce. |
Soubor | Vrátí nastavený pohled na mapování obsažená v mapě. |
boolean rovná se (objekt o) | Používá se k porovnání zadaného objektu s mapou. |
void forEach (akce BiConsumer) | Provádí danou akci pro každý záznam v mapě, dokud nejsou zpracovány všechny záznamy nebo akce vyvolá výjimku. |
V getOrDefault (klíč objektu, V defaultValue) | Vrátí hodnotu, na kterou je zadaný klíč mapován, nebo defaultValue, pokud mapa neobsahuje žádné mapování pro klíč. |
int hashCode() | Vrací hodnotu hash kódu pro mapu |
Enumerační klíče() | Vrátí výčet klíčů v hashtable. |
Set keySet() | Vrací zobrazení Set klíčů obsažených v mapě. |
V merge (klíč K, hodnota V, funkce přemapování BiFunction) | Pokud zadaný klíč ještě není přidružen k hodnotě nebo je přidružen k hodnotě null, přidruží jej k dané jiné hodnotě. |
V put (klíč K, hodnota V) | Vloží zadanou hodnotu se zadaným klíčem do hashovací tabulky. |
void putAll(Map t)) | Používá se ke zkopírování všech párů klíč-hodnota z mapy do hashtable. |
V putIfAbsent (klíč K, hodnota V) | Pokud zadaný klíč ještě není přidružen k hodnotě (nebo je namapován na hodnotu null), přidruží jej k dané hodnotě a vrátí hodnotu null, jinak vrátí aktuální hodnotu. |
booleovské odstranění (klíč objektu, hodnota objektu) | Odebere zadané hodnoty s přidruženými zadanými klíči z hashovací tabulky. |
V nahradit (klíč K, hodnota V) | Nahradí zadanou hodnotu za zadaný klíč. |
booleovské nahrazení (klíč K, V stará hodnota, V nová hodnota) | Nahradí starou hodnotu novou hodnotou pro zadaný klíč. |
void nahradit vše (funkce BiFunction) | Nahradí hodnotu každé položky výsledkem vyvolání dané funkce na této položce, dokud nebudou zpracovány všechny položky nebo funkce vyvolá výjimku. |
String toString() | Vrací řetězcovou reprezentaci objektu Hashtable. |
Hodnoty sbírky () | Vrátí zobrazení kolekce hodnot obsažených v mapě. |
boolean obsahuje (hodnota objektu) | Tato metoda vrátí hodnotu true, pokud v hašovací tabulce existuje nějaká hodnota rovna hodnotě, jinak vrátí hodnotu false. |
boolean obsahujeValue(hodnota objektu) | Tato metoda vrátí hodnotu true, pokud v hašovací tabulce existuje nějaká hodnota rovna hodnotě, jinak vrátí hodnotu false. |
boolean obsahujeKey (klíč objektu) | Tato metoda vrátí hodnotu true, pokud v hašovací tabulce existuje klíč rovný tomuto klíči, jinak vrátí hodnotu false. |
boolean isEmpty() | Tato metoda vrátí hodnotu true, pokud je hash tabulka prázdná; vrátí false, pokud obsahuje alespoň jeden klíč. |
chráněná void rehash() | Používá se ke zvětšení velikosti hashovací tabulky a přehodnocuje všechny její klíče. |
V get (klíč objektu) | Tato metoda vrátí objekt, který obsahuje hodnotu přidruženou ke klíči. |
V odstranit (klíč objektu) | Používá se k odstranění klíče a jeho hodnoty. Tato metoda vrací hodnotu přidruženou ke klíči. |
int size() | Tato metoda vrací počet položek v hashovací tabulce. |
Příklad hashtable 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()); } } }Otestujte to hned
Výstup:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Příklad hashtable 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ýstup:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Pří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ýstup:
Vijay Not Found
Příklad hashtable 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ýstup:
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}
Java Hashtable Příklad: 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ýstup:
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