Клас Java Hashtable реалізує хеш-таблицю, яка відображає ключі на значення. Він успадковує клас Dictionary і реалізує інтерфейс Map.
Пункти, які слід пам’ятати
- Хеш-таблиця — це масив списку. Кожен список відомий як відро. Положення сегмента визначається викликом методу hashcode(). Хеш-таблиця містить значення на основі ключа.
- Клас Java Hashtable містить унікальні елементи.
- Клас Java Hashtable не допускає нульовий ключ або значення.
- Клас Java Hashtable синхронізовано.
- Початкова ємність класу Hashtable за замовчуванням становить 11, тоді як loadFactor становить 0,75.
Оголошення класу хеш-таблиці
Давайте подивимося оголошення для класу java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Параметри класу хеш-таблиці
Давайте подивимося на параметри класу java.util.Hashtable.
Конструктори класу Java Hashtable
Конструктор | опис |
---|---|
Хеш-таблиця() | Він створює порожню хеш-таблицю з початковою місткістю та коефіцієнтом завантаження за замовчуванням. |
Хеш-таблиця (ємність int) | Він приймає цілочисельний параметр і створює хеш-таблицю, яка містить задану початкову ємність. |
Хеш-таблиця (int ємність, float loadFactor) | Він використовується для створення хеш-таблиці із заданою початковою ємністю та коефіцієнтом навантаження. |
Хеш-таблиця (Карта t) | Він створює нову хеш-таблицю з тими ж відображеннями, що й дана карта. |
Методи класу Java Hashtable
метод | опис |
---|---|
void clear() | Використовується для скидання хеш-таблиці. |
Об'єкт clone() | Він повертає поверхневу копію хеш-таблиці. |
V compute (клавіша K, BiFunction remappingFunction) | Він використовується для обчислення відображення для вказаного ключа та його поточного відображеного значення (або значення null, якщо поточного відображення немає). |
V computeIfAbsent(клавіша K, функція відображення функції) | Він використовується для обчислення його значення за допомогою заданої функції відображення, якщо вказаний ключ ще не пов’язано зі значенням (або відображено на нуль), і вводить його в цю карту, якщо він не нульовий. |
V computeIfPresent(клавіша K, BiFunction remappingFunction) | Він використовується для обчислення нового відображення з урахуванням ключа та його поточного відображеного значення, якщо значення для зазначеного ключа присутнє та відмінне від нуля. |
Елементи перерахування() | Він повертає перелік значень у хеш-таблиці. |
встановити | Він повертає встановлене подання відображень, що містяться на карті. |
логічне дорівнює (об'єкт o) | Використовується для порівняння зазначеного Об’єкта з Картою. |
void forEach(дія BiConsumer) | Він виконує задану дію для кожного запису на карті, доки всі записи не будуть оброблені або дія не створить виняткову ситуацію. |
V getOrDefault(ключ об'єкта, V defaultValue) | Він повертає значення, на яке зіставляється вказаний ключ, або defaultValue, якщо карта не містить зіставлення для ключа. |
int hashCode() | Він повертає значення хеш-коду для карти |
Ключі перерахування () | Він повертає перелік ключів у хеш-таблиці. |
Встановити keySet() | Він повертає набір перегляду ключів, що містяться на карті. |
V merge (ключ K, значення V, BiFunction remappingFunction) | Якщо вказаний ключ ще не пов’язано зі значенням або пов’язано з null, пов’язує його з заданим ненульовим значенням. |
V put (ключ K, значення V) | Він вставляє вказане значення з указаним ключем у хеш-таблицю. |
void putAll(Map t)) | Він використовується для копіювання всієї пари ключ-значення з карти в хеш-таблицю. |
V putIfAbsent(ключ K, значення V) | Якщо вказаний ключ ще не пов’язано зі значенням (або зіставлено з null), він пов’язує його з заданим значенням і повертає null, інакше повертає поточне значення. |
логічне видалення (ключ об'єкта, значення об'єкта) | Він видаляє вказані значення з пов’язаними вказаними ключами з хеш-таблиці. |
V замінити (ключ K, значення V) | Він замінює вказане значення на вказаний ключ. |
логічна заміна (ключ K, V старе значення, V нове значення) | Він замінює старе значення на нове значення для вказаного ключа. |
void replaceAll (функція BiFunction) | Він замінює значення кожного запису результатом виклику даної функції для цього запису, доки всі записи не будуть оброблені або функція не викличе виняткову ситуацію. |
String toString() | Він повертає рядкове представлення об’єкта Hashtable. |
Значення колекції () | Він повертає перегляд колекції значень, що містяться на карті. |
логічний містить (значення об'єкта) | Цей метод повертає true, якщо певне значення, що дорівнює значенню, існує в хеш-таблиці, інакше повертає false. |
boolean containsValue(значення об'єкта) | Цей метод повертає true, якщо певне значення, що дорівнює значенню, існує в хеш-таблиці, інакше повертає false. |
логічний містить ключ (ключ об'єкта) | Цей метод повертає true, якщо в хеш-таблиці існує певний ключ, інакше повертає false. |
логічне isEmpty() | Цей метод повертає true, якщо хеш-таблиця порожня; повертає false, якщо містить хоча б один ключ. |
захищений void rehash() | Він використовується для збільшення розміру хеш-таблиці та повторного хешування всіх її ключів. |
V get (ключ об'єкта) | Цей метод повертає об’єкт, який містить значення, пов’язане з ключем. |
V видалити (ключ об'єкта) | Використовується для видалення ключа та його значення. Цей метод повертає значення, пов’язане з ключем. |
int size() | Цей метод повертає кількість записів у хеш-таблиці. |
Приклад хеш-таблиці 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()); } } }Перевірте зараз
Вихід:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Приклад хеш-таблиці 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); } }
Вихід:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Приклад хеш-таблиці 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')); } }
Вихід:
Vijay Not Found
Приклад хеш-таблиці 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); } }
Вихід:
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: книга
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); } } }
Вихід:
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