Razred Java Hashtable izvaja razpršilno tabelo, ki preslika ključe v vrednosti. Podeduje razred Dictionary in implementira vmesnik Map.
Točke, ki si jih je treba zapomniti
- Hashtable je niz seznama. Vsak seznam je znan kot vedro. Položaj vedra se določi s klicem metode hashcode(). Hashtable vsebuje vrednosti na podlagi ključa.
- Razred Java Hashtable vsebuje edinstvene elemente.
- Razred Java Hashtable ne dovoljuje ničelnega ključa ali vrednosti.
- Razred Java Hashtable je sinhroniziran.
- Začetna privzeta zmogljivost razreda Hashtable je 11, medtem ko je loadFactor 0,75.
Deklaracija razreda zgoščene tabele
Oglejmo si deklaracijo za razred java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Parametri razreda zgoščene tabele
Oglejmo si parametre za razred java.util.Hashtable.
Konstruktorji razreda Java Hashtable
Konstruktor | Opis |
---|---|
Hashtable() | Ustvari prazno razpršilno tabelo z začetno privzeto zmogljivostjo in faktorjem obremenitve. |
Hashtable (int zmogljivost) | Sprejme celoštevilski parameter in ustvari zgoščeno tabelo, ki vsebuje določeno začetno zmogljivost. |
Razpršitvena tabela (int zmogljivost, plavajoči faktor obremenitve) | Uporablja se za ustvarjanje zgoščene tabele z določeno začetno zmogljivostjo in faktorjem obremenitve. |
Hashtable (Map t) | Ustvari novo zgoščeno tabelo z enakimi preslikavami kot dani zemljevid. |
Metode razreda Java Hashtable
Metoda | Opis |
---|---|
void clear() | Uporablja se za ponastavitev zgoščene tabele. |
Klon predmeta() | Vrne plitvo kopijo Hashtable. |
V compute (tipka K, BiFunction remappingFunction) | Uporablja se za izračun preslikave za podani ključ in njegovo trenutno preslikano vrednost (ali ničelno, če trenutne preslikave ni). |
V computeIfAbsent(tipka K, funkcija preslikave funkcij) | Uporablja se za izračun njegove vrednosti z uporabo dane funkcije preslikave, če navedeni ključ še ni povezan z vrednostjo (ali je preslikan v nič), in ga vnese v to preslikavo, razen če je nič. |
V computeIfPresent(tipka K, BiFunction remappingFunction) | Uporablja se za izračun nove preslikave glede na ključ in njegovo trenutno preslikano vrednost, če je vrednost podanega ključa prisotna in ni ničelna. |
Elementi naštevanja () | Vrne naštevanje vrednosti v zgoščeni tabeli. |
Set | Vrne nastavljen pogled preslikav, ki jih vsebuje zemljevid. |
logično je enako (predmet o) | Uporablja se za primerjavo določenega predmeta z zemljevidom. |
void forEach (dejanje BiConsumer) | Izvede dano dejanje za vsak vnos na zemljevidu, dokler niso vsi vnosi obdelani ali dejanje vrže izjemo. |
V getOrDefault(ključ predmeta, V defaultValue) | Vrne vrednost, v katero je preslikan podani ključ, ali defaultValue, če preslikava ne vsebuje preslikave za ključ. |
int hashCode() | Vrne vrednost zgoščene kode za zemljevid |
Številski ključi() | Vrne naštevanje ključev v zgoščevalni tabeli. |
Nastavi keySet() | Vrne nastavljen pogled ključev, ki jih vsebuje zemljevid. |
V spajanje (tipka K, vrednost V, funkcija preslikave BiFunction) | Če navedeni ključ še ni povezan z vrednostjo ali je povezan z ničelno vrednostjo, ga poveže z dano vrednostjo, ki ni ničelna. |
V postavi (ključ K, vrednost V) | V zgoščevalno tabelo vstavi določeno vrednost s podanim ključem. |
void putAll(Map t)) | Uporablja se za kopiranje vseh parov ključ-vrednost iz preslikave v zgoščevalno tabelo. |
V putIfAbsent(ključ K, vrednost V) | Če podani ključ še ni povezan z vrednostjo (ali je preslikan v ničelno), ga poveže z dano vrednostjo in vrne ničelno vrednost, sicer vrne trenutno vrednost. |
logično odstranjevanje (ključ predmeta, vrednost predmeta) | Odstrani podane vrednosti s povezanimi podanimi ključi iz zgoščene tabele. |
V zamenjava (tipka K, vrednost V) | Nadomesti podano vrednost za določen ključ. |
logična zamenjava (tipka K, V stara vrednost, V nova vrednost) | Zamenja staro vrednost z novo vrednostjo za določen ključ. |
void replaceAll (funkcija BiFunction) | Zamenja vrednost vsakega vnosa z rezultatom priklica dane funkcije na tem vnosu, dokler niso obdelani vsi vnosi ali funkcija vrže izjemo. |
Niz vString() | Vrne nizovno predstavitev predmeta Hashtable. |
Vrednosti zbirke () | Vrne pogled zbirke vrednosti, ki jih vsebuje zemljevid. |
logično vsebuje (vrednost predmeta) | Ta metoda vrne true, če v zgoščeni tabeli obstaja vrednost, ki je enaka vrednosti, sicer vrne false. |
boolean containsValue(vrednost predmeta) | Ta metoda vrne true, če v zgoščeni tabeli obstaja vrednost, ki je enaka vrednosti, sicer vrne false. |
boolean containsKey(ključ predmeta) | Ta metoda vrne true, če v zgoščeni tabeli obstaja nek ključ, ki je enak ključu, sicer vrne false. |
logično isEmpty() | Ta metoda vrne true, če je zgoščena tabela prazna; vrne false, če vsebuje vsaj en ključ. |
zaščiten void rehash() | Uporablja se za povečanje velikosti zgoščevalne tabele in ponovno zgoščevanje vseh njenih ključev. |
V get (ključ predmeta) | Ta metoda vrne objekt, ki vsebuje vrednost, povezano s ključem. |
V odstrani (ključ predmeta) | Uporablja se za odstranitev ključa in njegove vrednosti. Ta metoda vrne vrednost, povezano s ključem. |
int size() | Ta metoda vrne število vnosov v zgoščeni tabeli. |
Primer zgoščene tabele 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()); } } }Preizkusite zdaj
Izhod:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Primer zgoščene tabele 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); } }
Izhod:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Primer zgoščene tabele 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')); } }
Izhod:
Vijay Not Found
Primer zgoščene tabele 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); } }
Izhod:
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}
Primer zgoščene tabele Java: knjiga
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); } } }
Izhod:
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