Klasa Java Hashtable implementuje tablicę mieszającą, która mapuje klucze na wartości. Dziedziczy klasę Dictionary i implementuje interfejs Map.
Punkty do zapamiętania
- Hashtable to tablica listy. Każda lista nazywana jest wiadrom. Pozycję segmentu identyfikuje się poprzez wywołanie metody hashcode(). Hashtable zawiera wartości oparte na kluczu.
- Klasa Java Hashtable zawiera unikalne elementy.
- Klasa Java Hashtable nie zezwala na klucz ani wartość zerową.
- Klasa Java Hashtable jest zsynchronizowana.
- Początkowa domyślna pojemność klasy Hashtable wynosi 11, podczas gdy LoadFactor wynosi 0,75.
Deklaracja klasy Hashtable
Zobaczmy deklarację klasy java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Parametry klasy Hashtable
Zobaczmy parametry klasy java.util.Hashtable.
Konstruktorzy klasy Java Hashtable
Konstruktor | Opis |
---|---|
Hashtable() | Tworzy pustą tablicę skrótów o początkowej domyślnej pojemności i współczynniku obciążenia. |
Hashtable (int pojemność) | Akceptuje parametr całkowity i tworzy tablicę skrótów zawierającą określoną pojemność początkową. |
Hashtable (pojemność int, współczynnik obciążenia float) | Służy do tworzenia tabeli mieszającej o określonej pojemności początkowej i współczynniku obciążenia. |
Hashtable (mapa t) | Tworzy nową tabelę skrótów z tymi samymi mapowaniami, co dana mapa. |
Metody klasy Java Hashtable
metoda | Opis |
---|---|
puste jasne() | Służy do resetowania tablicy mieszającej. |
Klon obiektu() | Zwraca płytką kopię Hashtable. |
Obliczenia V (klawisz K, funkcja ponownego mapowania BiFunction) | Służy do obliczenia mapowania dla określonego klucza i jego aktualnie mapowanej wartości (lub wartości null, jeśli nie ma bieżącego mapowania). |
V computeIfAbsent (klawisz K, funkcja mapowania funkcji) | Służy do obliczenia jego wartości za pomocą danej funkcji mapującej, jeśli podany klucz nie jest już powiązany z wartością (lub jest odwzorowany na wartość null) i wprowadza go do tego odwzorowania, chyba że ma wartość null. |
V computeIfPresent (klawisz K, funkcja remapowania BiFunction) | Służy do obliczenia nowego mapowania, biorąc pod uwagę klucz i jego aktualnie odwzorowaną wartość, jeśli wartość dla określonego klucza jest obecna i nie jest null. |
Elementy wyliczeniowe() | Zwraca wyliczenie wartości w tabeli skrótów. |
Ustawić | Zwraca ustawiony widok mapowań zawartych na mapie. |
wartość logiczna równa się (obiekt o) | Służy do porównania określonego Obiektu z Mapą. |
void forEach (akcja BiConsumer) | Wykonuje daną akcję dla każdego wpisu na mapie, dopóki wszystkie wpisy nie zostaną przetworzone lub akcja nie zgłosi wyjątku. |
V getOrDefault (klucz obiektu, V wartość domyślna) | Zwraca wartość, na którą odwzorowany jest określony klucz, lub wartość domyślną, jeśli mapa nie zawiera mapowania klucza. |
int kod hash() | Zwraca wartość kodu skrótu dla mapy |
Klucze wyliczeniowe() | Zwraca wyliczenie kluczy w tablicy mieszającej. |
Ustaw zestaw kluczy() | Zwraca widok zestawu kluczy zawartych na mapie. |
Scalanie V (klawisz K, wartość V, funkcja ponownego mapowania BiFunction) | Jeśli określony klucz nie jest już powiązany z wartością lub jest powiązany z wartością null, kojarzy go z podaną wartością inną niż null. |
V put (klawisz K, wartość V) | Wstawia określoną wartość z określonym kluczem w tabeli skrótów. |
void putAll(Mapa t)) | Służy do kopiowania całej pary klucz-wartość z mapy do tablicy mieszającej. |
V putIfAbsent(K klucz, wartość V) | Jeśli określony klucz nie jest już powiązany z wartością (lub jest odwzorowany na wartość null), kojarzy go z podaną wartością i zwraca wartość null, w przeciwnym razie zwraca bieżącą wartość. |
wartość logiczna usuń (klucz obiektu, wartość obiektu) | Usuwa określone wartości wraz z powiązanymi określonymi kluczami z tablicy mieszającej. |
Zamień V (klawisz K, wartość V) | Zastępuje określoną wartość dla określonego klucza. |
zamiana logiczna (klawisz K, V stara wartość, V nowa wartość) | Zastępuje starą wartość nową wartością dla określonego klucza. |
nieważne zamień wszystko (funkcja BiFunction) | Zastępuje wartość każdego wpisu wynikiem wywołania danej funkcji dla tego wpisu, dopóki wszystkie wpisy nie zostaną przetworzone lub funkcja nie zgłosi wyjątku. |
Ciąg doString() | Zwraca ciąg znaków reprezentujący obiekt Hashtable. |
Wartości kolekcji() | Zwraca widok kolekcji wartości zawartych na mapie. |
wartość logiczna zawiera (wartość obiektu) | Ta metoda zwraca wartość true, jeśli w tabeli skrótów istnieje wartość równa tej wartości, w przeciwnym razie zwraca wartość false. |
wartość logiczna zawiera wartość (wartość obiektu) | Ta metoda zwraca wartość true, jeśli w tabeli skrótów istnieje wartość równa tej wartości, w przeciwnym razie zwraca wartość false. |
wartość logiczna zawiera klucz (klucz obiektu) | Ta metoda zwraca wartość true, jeśli w tabeli skrótów istnieje klucz równy temu kluczowi, w przeciwnym razie zwraca wartość false. |
wartość logiczna jest pusta() | Ta metoda zwraca wartość true, jeśli tabela mieszająca jest pusta; zwraca false, jeśli zawiera co najmniej jeden klucz. |
chroniony pusty rehash() | Służy do zwiększania rozmiaru tablicy mieszającej i ponownego mieszania wszystkich jej kluczy. |
V get (klucz obiektu) | Ta metoda zwraca obiekt zawierający wartość powiązaną z kluczem. |
V usuń (klucz obiektu) | Służy do usuwania klucza i jego wartości. Ta metoda zwraca wartość powiązaną z kluczem. |
rozmiar całkowity() | Ta metoda zwraca liczbę wpisów w tabeli skrótów. |
Przykład tablicy mieszającej 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()); } } }Przetestuj teraz
Wyjście:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Przykład Java Hashtable: usuń()
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); } }
Wyjście:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Przykład tablicy mieszającej 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')); } }
Wyjście:
Vijay Not Found
Przykład Java Hashtable: 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); } }
Wyjście:
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}
Przykład tablicy mieszającej Java: Book
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); } } }
Wyjście:
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