HashTable в Java — это тип фреймворка коллекций, который используется для хранения и управления группой объектов. Это массив списка в java (известный как bucket ), который используется для реализации хэш-таблицы, которая сопоставляет ключи со значениями. Hashtable содержит уникальные элементы. Первоначальная емкость класса Hashtable по умолчанию — 11 и не допускает пустых ключей и значений.
- HashTable в Java
- # Ключевые моменты Java Класс Hashtable
- # Работа и хранение данных в Hashtable
- Объявление класса #Hashtable
- #When to use Hashtable
- # Конструкторы, предоставляемые классом HashTable
- # Методы, предоставляемые классом HashTable
- #Object put (Object key, Object value)
- #Object get (Object key)
- #Object remove (Object key)
- #boolean contains (Object value)
- #boolean containsValue (значение объекта)
- #boolean containsKey (ключ объекта)
- #boolean isEmpty ()
- #void clear ()
- #entrySet ()
- #String toString ()
- #int size ()
- #KeySet()
- #int hashCode ()
- #computeIfAbsent()
- #putIfAbsent ()
- #enumeration keys ()
- #values()
HashTable в Java
Java Класс Hashtable реализует хеш-таблицу, которая сопоставляет ключи значениям. Он наследует класс Dictionary и реализует интерфейс Map. Если мы хотим успешно сохранять и извлекать объекты из хэш-таблицы, объекты, используемые в качестве ключей, должны реализовывать метод hashCode и метод equals.
- Он похож на HashMap, но он синхронизирован.
- Hashtable хранит пару ключ/значение в хеш-таблице.
- В Hashtable мы указываем объект, который используется в качестве ключа, и значение, которое мы хотим связать с этим ключом. Затем ключ хешируется, и в результате хэш-код используется в качестве индекса, по которому значение сохраняется в таблице.
# Ключевые моменты Java Класс Hashtable
- Hashtable — это массив списка. Каждый список называется корзиной. Положение корзины определяется путем вызова метода hashcode (). Hashtable содержит значения на основе ключа.
- Класс Java Hashtable содержит уникальные элементы.
- Класс Java Hashtable не допускает использования нулевого ключа или значения.
- Класс Java Hashtable синхронизирован.
- Начальная емкость класса Hashtable по умолчанию составляет 11, тогда как loadFactor — 0,75.
# Работа и хранение данных в Hashtable
В Hashtable мы указываем объект, который используется в качестве ключа, и значение, которое мы хотим связать с этим ключом.
Объявление класса #Hashtable
Давайте разберемся с объявлением Hashtable в классе java.util.Hashtable.
открытый класс Hashtable расширяет Dictionary , реализует Map , Cloneable, Serializable
Класс Hashtable расширяет класс Dictionary и реализует интерфейс Maps, Cloneable и Serializable.
Здесь
- ‘K’ — это тип ключа.
- ‘V’ — это тип сопоставленных значений с ключами.
#When to use Hashtable
Hashtable может использоваться во многих различных контекстах. См. в примерах ниже.
#Search
Хеширование полезно для индексации больших пространств хранения, чтобы вы могли искать в них что-то, не читая каждый раз все их содержимое.
например, в словаре. , Слова будут ключами в Hashtable, поскольку они должны быть уникальными.. С другой стороны, определения будут значениями в соответствии с ключами или словами из словаря.
# Языки программирования
Хеш-таблицы — удобный способ реализовать механизм, который связывает имя переменной с ее ячейкой памяти, например, для хранения любых данных и значений в соответствии с их типами данных в памяти.
# Конструкторы, предоставляемые классом HashTable
Класс Hashtable имеет четыре конструктора, а именно:
- Hashtable (): это конструктор по умолчанию для хэш-таблицы, который создает экземпляр класса Hashtable.
- Hashtable (int size): It создает хеш-таблицу с начальным размером, указанным размером.
- Hashtable (int size, float fillRatio): Создает новую пустую HashTable с указанным начальным размер и коэффициент заполнения.
- Hashtable (Map m): он создает HashTable, который инициализируется парами ключ-значение в указанной карте.
Коэффициент заполнения определяет, каким может быть полный HashTable до увеличения его емкости. Его значение находится в диапазоне от 0,0 до 1,0.
# Методы, предоставляемые классом HashTable
Методы в классе HashTable очень аналогично HashMap.
#Object put (Object key, Object value)
Он сопоставляет указанный ключ с указанным значением в HashTable. Ни ключ, ни значение не могут быть нулевыми. См. Следующую программу.
import java.util.Hashtable; import java.util.Iterator; public class p {public static void main (String [] args) {Hashtable h1 = new Hashtable ();//Создана Hashtable//Добавляем отображения в хеш-таблицу h1.put (1, "H"); h1.put (2, «А»); h1.put (3, "S"); h1.put (4, "H"); h1.put (5, "Т"); h1.put (6, «А»); h1.put (7, "B"); h1.put (8, "L"); h1.put (9, "E"); System.out.println (h1); }}
См. следующий результат.
#Object get (Object key)
Возвращает значение, которому сопоставлен указанный ключ. Возвращает null, если такой ключ не найден.
См. Следующую программу.
import java.util.Hashtable; public class g {public static void main (String [] args) {Hashtable h = new Hashtable ();//Создана Hashtable//Добавляем сопоставления в хеш-таблицу h.put (1, "H"); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //Получаем отображение по ключу String v = h.get (4); //получить данные по 4-му индексу System.out.println (v); //для печати значения с указанным выше индексом}}
См. следующий вывод.
#Object remove (Object key)
Удаляет ключ (и соответствующее ему значение) из HashTable . См. Следующий файл.
import java.util.Hashtable; import java.util.Iterator; public class r {public static void main (String [] args) {Hashtable h = new Hashtable ();//Создана Hashtable//Добавляем отображения в хеш-таблицу h.put (1, "H"); h.put (2, "A"); h.put (3, "S" ); h.put (4, "H"); h.put (5, "T"); h.put (6, "A"); h.put (7, "B"); h.put ( 8, "L"); h.put (9, "E"); System.out.println (h);//Удаляем отображение h.remove (5);//5 удаляется System.out.println ( h);}}
См. результат.
#boolean contains (Object value)
Возвращает true, если указанное значение существует в хеш-таблице для любой пары, иначе возвращает false. Обратите внимание, что логический метод contains () идентичен по функциональности функции containsValue ().
См. следующую программу.
import j ava.util.Hashtable; public class c1 {public static void main (String [] args) {Hashtable h = new Hashtable ();//Создана Hashtable//Добавляем сопоставления в хеш-таблицу h.put ( 1, «Н»); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //проверка, присутствует ли L в таблице или нет System.out.println ("Присутствует ли значение 'L'?" + h.contains ("L")); }}
См. результат.
#boolean containsValue (значение объекта)
Возвращает true, если указанное значение существует в хеш-таблице для любой пары, иначе возвращает false.
import java.util.Hashtable; public class c2 {public static void main (String [] args) {Hashtable h = new Hashtable ();//Created Hashtable//Добавить сопоставления в хеш-таблицу h.put (1, "H"); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //проверяем, существует ли значение if (h.containsValue ("S")) System.out.println ("значение найдено в таблице"); }}
См. следующий результат.
#boolean containsKey (ключ объекта)
Возвращает true, если указанный ключ существует в хэш-таблице для любой пары, иначе возвращает false. См. Следующий код.
import java.util.Hashtable; import java.util.Iterator; public class c3 {public static void main (String [] args) {Hashtable h = new Hashtable ();//Создана Hashtable//Добавляем отображения в хеш-таблицу h. положите (1, "H"); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //проверяем, существует ли ключ if (h.containsKey (9)) System.out.println ("Ключ найден в таблице"); }}
См. результат.
#boolean isEmpty ()
Возвращает true, если Hashtable пуста; возвращает false, если содержит хотя бы один ключ. См. Следующий код.
import java.util.Hashtable; import java.util.Iterator; public class e {public static void main (String [] args) {Hashtable h = new Hashtable ();//Создана Hashtable//Добавляем отображения в хеш-таблицу h.put (1, "H"); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //очистить хеш-таблицу h h.clear (); //проверка, пуста ли хеш-таблица h if (h.isEmpty ()) System.out.println ("да хеш-таблица пуста"); }}
См. следующий результат.
#void clear ()
Используется для удаления всех пар в HashTable. См. Следующий код.
import java.util.Iterator; public class c {public static void main (String [] args) {Hashtable h = new Hashtable () ;//Создана хеш-таблица//Добавляем отображения в хеш-таблицу h.put (1, "H"); h.put (2, «А»); h.put (3, "S"); h.put (4, "H"); h.put (5, "Т"); h.put (6, «А»); h.put (7, "B"); h.put (8, "L"); h.put (9, "E"); System.out.println (ч); //очистить хеш-таблицу h h.clear (); System.out.println (ч); }}
Этот вывод будет недоступен, поскольку данные очищены.
#entrySet ()
Он используется для получения заданного представления записей, содержащихся в этой хэш-таблице. См. Следующий код.
//Код Java, иллюстрирующий метод entreysent () import java.util. *; class es {public static void main (String [] arg) {//создание хеш-таблицы Hashtable h = new Hashtable (); h.put (3, "C"); h.put (2, "B"); h.put (1, «А»); //создание представления набора для хэш-таблицы Set s = h.entrySet (); //печать наборов записей System.out.println ("набор записей:" + s); }}
См. результат.
#String toString ()
Возвращает строковый эквивалент хеш-таблицы. См. Следующий код.
//Код Java, иллюстрирующий метод toString () import java.util. *; class s {public static void main (String [] arg) {//создание хэш-таблицы Hashtable h = new Hashtable (); h.put (3, «А»); h.put (2, "B"); h.put (1, "C"); //Строковый эквивалент map System.out.println ("строковый эквивалент" + "map:" + h.toString ()); }}
См. следующий результат.
#int size ()
Метод size () возвращает количество записей в хеш-таблице. См. Программу.
//Код Java для понимания метода size () import java.util. *; Class size1 {public static void main (String [] arg) {//создание хеш-таблицы Hashtable m = новая Hashtable (); //введите имя/м пара m.put ("A", new Integer (345)); m.put ("B", новое целое число (245)); m.put ("C", новое целое число (790)); m.put ("D", новое целое число (365)); //размер хеш-таблицы System.out.println ("Размер:" + m.size ()); }}
См. следующий результат.
#KeySet()
Метод KeySet () используется для получения представления Set всех ключей, содержащихся в конкретной хеш-таблице.
//Код Java для понимания метода keySet () import java.util. *; class keyset1 {public static void main (String [] arg) {//создание хеш-таблицы Hashtable h = новая хеш-таблица (); h.put (3, "X"); h.put (2, "Y"); h.put (1, "Z"); //создание представления набора для ключей Set skey = h.keySet (); //проверка набора ключей System.out.println ("key set:" + skey); }}
См. следующий результат.
#int hashCode ()
Метод hashCode () возвращает значение хэш-кода для этой карты в соответствии с определением в интерфейсе карты. См. Следующий код.
//Код Java для понимания метода hashCode () import java.util. *; Class hashcode1 {public static void main (String [] arg) {//создание хэша table Hashtable h = new Hashtable (); h.put (3, «три»); h.put (2, «два»); h.put (1, «один»); //получение хэш-кода System.out.println ("хэш-код:" + h.hashCode ()); }}
См. следующий результат.
#computeIfAbsent()
Метод computeIfAbsent (Key, Function) класса HashMap используется для вычислить значение для данного ключа, используя данную функцию сопоставления, если ключ еще не связан со значением (или сопоставлен с нулевым значением), и введите это вычисленное значение в HashTable else null.
См. следующую программу.
//Программа Java для понимания метода computeIfAbsent (Key, Function). импорт java.util. *; public class computeifabsent {//Основной метод public static void main (String [] args) {//создаем таблицу и добавляем некоторые значения Map T = new Hashtable (); T.put ("X", 10); T.put («Ы», 20); T.put ("Z", 30); //печать деталей карты System.out.println ("hashTable:" + T.toString ()); T.computeIfAbsent ("newX", k -> 100); //предоставляем значение для нового ключа, которого нет, используя метод computeIfAbsent T.computeIfAbsent ("newY", k -> 200); System.out.println ("новая хеш-таблица" + T); //печать нового сопоставления}}
См. следующий вывод.
#putIfAbsent ()
Метод putIfAbsent () класса Hashtable, который позволяет сопоставить значение заданному ключу, если данный ключ не связан со значением и не отображается в нуль. См. Программу.
//Программа на Java для понимания метода putIfAbsent (ключ, значение). import java.util. *; public class putifabsent1 {//Основной метод public static void main (String [] args) {//создаем таблицу и добавляем некоторые значения Map t = new Hashtable (); t.put («А», 100); t.put («Б», 200); t.put ("C", 300); //печать деталей карты System.out.println ("hashTable:" + t.toString ()); //Вставка несуществующего ключа со значением//с использованием метода putIfAbsent String retValue = String.valueOf (t.putIfAbsent ("E", 400)); //Распечатать возвращенное значение System.out.println («Возвращаемое значение» + »для ключа« E »:« + retValue); //выводим новое отображение System.out.println ("hashTable:" + t); //Вставка существующего ключа со значением//с использованием метода putIfAbsent retValue = String.valueOf (t.putIfAbsent ("Book", 4500)); //Распечатать возвращенное значение System.out.println («Возвращаемое значение» + »для ключа 'B':« + retValue); //выводим новое отображение System.out.println ("hashTable:" + t); }}
См. следующий результат.
#enumeration keys ()
Метод enumeration keys () используется для получения перечисления ключей, содержащихся в хэш-таблице. См. Программу.
//Код Java, иллюстрирующий keys () method import java.util. *; Class enumkeys {public static void main (String [] arg) {//создание хеш-таблицы Hashtable h = новая хеш-таблица (); Hashtable h1 = new Hashtable (); h.put (3, «три»); h.put (2, «два»); h.put (1, «один»); //создать перечисление Enumeration e1 = h.keys (); System.out.println ("ключ отображения:"); в то время как (e1.hasMoreElements ()) {System.out.println (e1.nextElement ()); }}}
См. результат.
#values()
Метод values () используется для проверки значений hashTable. См. Следующий код.
//Код Java для понимания values () method import java.util. *; Class value1 {public static void main (String [] arg) {//создание хэша table Hashtable h = new Hashtable (); h.put (3, "X"); h.put (2, "Y"); h.put (1, "Z"); //создание представления набора для хэш-таблицы Set s = h.entrySet (); //проверка вида коллекции значений System.out.println ("collection values:" + h.values ()); }}
См. следующий результат.
Наконец, пример HashTable в Java завершен.