logo

Клас Java Hashtable

Клас 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.

    К: це тип ключів, які підтримує ця карта.IN: це тип зіставлених значень.

Конструктори класу 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)Він використовується для обчислення нового відображення з урахуванням ключа та його поточного відображеного значення, якщо значення для зазначеного ключа присутнє та відмінне від нуля.
Елементи перерахування()Він повертає перелік значень у хеш-таблиці.
встановитиentrySet()Він повертає встановлене подання відображень, що містяться на карті.
логічне дорівнює (об'єкт 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