Пример хеширования в Java | Руководство по хешированию Java

Хеширование в Java — это метод, который используется для сопоставления значений с ключом, что, в свою очередь, упрощает получение значений путем простого ввода ключа. Основное преимущество использования HASHING в java заключается в том, что оно снижает временную сложность любой программы и позволяет времени выполнения важной операции оставаться постоянным даже для более важной стороны. Но основная проблема хеш-функции заключается в том, что она приводит к конфликту, поскольку два или более ключа могут указывать на одни и те же значения.

Если мы хотим избежать этой цепочки, в основном используется хеширование. Итак, чтобы вставить значение в хеш-таблицу, основным требованием является хеш-индекс, который рассчитывается по формуле.

Пример хеширования в Java

В хешировании есть хеш-функция, которая сопоставляет ключи некоторым значениям.

Но эти функции хеширования могут привести к конфликту, когда два или более ключа отображаются на одно и то же значение.

Цепное хеширование позволяет избежать коллизии.

Идея состоит в том, чтобы каждая ячейка хеш-таблицы указала на LinkedList записей, имеющих одинаковое значение хеш-функции.

Hashindex: key% number_of_items

Давайте реализуем хеширование следующими способами с использованием Java.

Реализация хеширования с использованием хэш-таблицы

См. следующий код.

 import java.util. *; public class Hashing1 {public  static void main (String args []) {Hashtable  hm = new Hashtable  ();  hm.put (1, «Приложение»);  hm.put (12, «Дивиденд»);  hm.put (15, «Лучшее место для обучения»);  hm.put (3, "Java");  System.out.println (хм);  }} 

См. результат.

Вышеупомянутый метод — это синхронизированный способ хеширования.

Реализация хеширования с использованием хэш-карты

См. следующее код.

 import java.util. *; открытый класс Hashing2 {static void createHashMap (int arr []) {HashMap  hmap = new HashMap  ();  for (int i = 0; i  

См. результат.

Вышеупомянутый метод представляет собой несинхронизированную более быструю реализацию хеширования.

Здесь мы создали хэш-карту из массива, взяв элементы как ключи и значения как частоты.

Реализация хеширования с использованием LinkedHashMap

См. следующую программу.

 import java.util. *; открытый класс BasicLinkedHashMap {public static void main (String a []) {LinkedHashMap  lhm = new LinkedHashMap  ();  lhm.put («один», «AppDividend.Com»);  lhm.put («два», «https://appdividend.com/amp/category/java-tutorials/»);  System.out.println («Значение ключа 'one':" + lhm.get ("one"));  System.out.println ("Размер карты:" + lhm.size ());  System.out.println («Карта пуста?» + Lhm.isEmpty ());  System.out.println ("Содержит ключ 'два'?" + Lhm.containsKey ("два"));  System.out.println ("удалить элемент" один ":" + lhm.remove ("один"));  System.out.println (лхм);  }} 

См. результат.

Вышеупомянутый метод похож на HashMap, но единственным его преимуществом является то, что он сохраняет порядок элементов.

Реализация хеширования с использованием ConcurrentHashMap

См. следующую программу.

 import java.util.concurrent. *; public class ConcurrentHashMapDemo {public static void main (String [] args) {ConcurrentHashMap  m = new ConcurrentHashMap  ();  m.put (100, «C ++»);  м.пуск (101, «Есть»);  м.путь (102, «Всегда»);  м.пуск (103, «Лучший»);  System.out.println ("ConcurentHashMap:" + m);  m.putIfAbsent (101, «C ++»);  System.out.println (" nConcurentHashMap:" + m);  m.remove (102, «Всегда»);  System.out.println (" nConcurentHashMap:" + m);  m.replace (100, «C ++», «Java»);  System.out.println (" nConcurentHashMap:" + m);  }} 

См. следующий результат.

Вышеупомянутый метод аналогичен хеш-таблице. Разница в том, что он синхронизирован и быстрее, поскольку используются несколько блокировок.

Реализация хеширования с использованием HashSet

См. Следующую программу .

 import java.util. *; открытый класс Test {public static void main (String [] args) {HashSet  h = new HashSet  ();  h.add («Индия»);  h.add («Австралия»);  h.add («Южная Африка»);  h.add («Индия»);  System.out.println (ч);  System.out.println («Содержит ли HashSet Индию или нет:» + h.contains («Индия»));  h.remove («Австралия»);  System.out.println ("Список после удаления Австралии:" + h);  System.out.println ("Обход списка:");  Итератор  i = h.iterator ();  while (i.hasNext ()) System.out.println (i.next ());  }} 

См. результат.

Вышеупомянутый метод аналогичен HashMap. Единственное отличие состоит в том, что HashSet поддерживает только ключи, а не пары.

Реализация хеширования с использованием LinkedHashSet

См. Следующую программу.

 import java.util.LinkedHashSet; открытый класс Demo {public static void main (String [] args) {LinkedHashSet  connectedset = new LinkedHashSet  ();  connectedset.add («А»);  connectedset.add («B»);  connectedset.add («C»);  connectedset.add ("D"); //Это не приведет к добавлению нового элемента, так как A уже существует connectedset.add ("A");  connectedset.add («E»);  System.out.println ("Размер LinkedHashSet =" + connectedset.size ());  System.out.println ("Исходный набор LinkedHashSet:" + связанный набор);  connectedset.remove ("D");  System.out.println ("Попытка удалить Z, который не" + "присутствует:" + connectedset.remove ("Z"));  System.out.println ("Проверка наличия A =" + connectedset.contains ("A"));  System.out.println («Обновленный LinkedHashSet:» + связанный набор);  }} 

См. результат.

Вышеупомянутый метод аналогичен LinkedHashMap. Разница в том, что он поддерживает только ключи, а не пару.

Наконец, урок по хешированию в Java-примере завершен.

Рекомендуемые сообщения

Класс Java.lang.Boolean в примере Java

Интерфейс Deque в примере Java

Что такое литералы в Java

Учебное пособие по математическому классу Java

Класс словаря в учебном пособии по Java

Оцените статью
nanomode.ru
Добавить комментарий