Класът Java Hashtable имплементира хеш-таблица, която съпоставя ключове със стойности. Той наследява класа Dictionary и имплементира интерфейса Map.
Точки за запомняне
- Hashtable е масив от списък. Всеки списък е известен като кофа. Позицията на кофата се идентифицира чрез извикване на метода hashcode(). Hashtable съдържа стойности, базирани на ключа.
- Класът 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, плаващ коефициент на натоварване) | Използва се за създаване на хеш-таблица, имаща посочения първоначален капацитет и loadFactor. |
Хеш таблица (карта t) | Той създава нова хеш таблица със същите съпоставяния като дадената карта. |
Методи на клас Java Hashtable
Метод | Описание |
---|---|
void clear() | Използва се за нулиране на хеш-таблицата. |
Клониране на обект() | Той връща плитко копие на Hashtable. |
V compute (клавиш K, BiFunction remappingFunction) | Използва се за изчисляване на съпоставяне за посочения ключ и неговата текуща картографирана стойност (или нула, ако няма текущо съпоставяне). |
V computeIfAbsent(ключ K, Function mappingFunction) | Той се използва за изчисляване на стойността му с помощта на дадената функция за съпоставяне, ако посоченият ключ все още не е свързан със стойност (или е съпоставен с null), и го въвежда в тази карта, освен ако не е null. |
V computeIfPresent(ключ K, BiFunction remappingFunction) | Използва се за изчисляване на ново съпоставяне, дадено на ключа и неговата текуща нанесена стойност, ако стойността за посочения ключ е налична и не е нула. |
Елементи за изброяване() | Той връща изброяване на стойностите в хеш-таблицата. |
Комплект | Той връща зададен изглед на съпоставянията, съдържащи се в картата. |
булево равно (обект o) | Използва се за сравняване на посочения обект с картата. |
void forEach(действие BiConsumer) | Той изпълнява даденото действие за всеки запис в картата, докато всички записи бъдат обработени или действието хвърли изключение. |
V getOrDefault(обектен ключ, V defaultValue) | Връща стойността, към която е съпоставен посоченият ключ, или defaultValue, ако картата не съдържа съпоставяне за ключа. |
int hashCode() | Връща стойността на хеш кода за картата |
Ключове за изброяване() | Той връща изброяване на ключовете в хеш-таблицата. |
Задайте keySet() | Той връща Set изглед на ключовете, съдържащи се в картата. |
V сливане (K ключ, V стойност, BiFunction remappingFunction) | Ако указаният ключ все още не е свързан със стойност или е свързан с null, той го свързва с дадената не-null стойност. |
V put (К ключ, V стойност) | Той вмъква посочената стойност с посочения ключ в хеш-таблицата. |
void putAll(Map t)) | Използва се за копиране на цялата двойка ключ-стойност от карта в хеш-таблица. |
V putIfAbsent(ключ K, V стойност) | Ако посоченият ключ все още не е свързан със стойност (или е съпоставен с null), го свързва с дадената стойност и връща null, в противен случай връща текущата стойност. |
булево премахване (обектен ключ, стойност на обект) | Той премахва посочените стойности със свързаните посочени ключове от хеш-таблицата. |
V замяна (К ключ, V стойност) | Той замества определената стойност за определен ключ. |
булева замяна (клавиш K, V стара стойност, V нова стойност) | Той заменя старата стойност с новата стойност за определен ключ. |
void replaceAll (функция BiFunction) | Той замества стойността на всеки запис с резултата от извикването на дадена функция върху този запис, докато всички записи бъдат обработени или функцията хвърли изключение. |
String toString() | Той връща низово представяне на обекта Hashtable. |
Колекция стойности() | Той връща изглед на колекция от стойностите, съдържащи се в картата. |
boolean съдържа (стойност на обект) | Този метод връща true, ако някаква стойност, равна на стойността, съществува в хеш-таблицата, в противен случай връща false. |
boolean containsValue(Стойност на обект) | Този метод връща true, ако някаква стойност, равна на стойността, съществува в хеш-таблицата, в противен случай връща false. |
boolean containsKey(обектен ключ) | Този метод връща true, ако някакъв ключ, равен на ключа, съществува в хеш-таблицата, в противен случай връща false. |
булево isEmpty() | Този метод връща true, ако хеш-таблицата е празна; връща false, ако съдържа поне един ключ. |
защитено невалидно прехранване () | Използва се за увеличаване на размера на хеш-таблицата и повторно хеширане на всички нейни ключове. |
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