What is the difference between Hashing and Hash Tables?
What is Hashing?
Hashing refers to the process of generating a fixed-size output from an input of variable size using the mathematical formulas known as hash functions. This technique determines an index or location for the storage of an item in a data structure.
It might not be strictly related to key-value pairs only if you are manipulating the data say for some encryption or changing it to a form that will be less complex to handle with, then its also hashing
What is Hash Table?
The implementation of a Hash table is the most popular use for hashing. This is a container that store the key-value pairs. Hash Tables use Hashing to generate a short Integer value out of the key and maps it with a value.
Some Important concepts regarding Hash Table:
Initial Capacity: In Java when we create a Hash Table, it constructs a new empty hashtable with a default initial capacity of 11. For HashMap in Java the initial capacity is 16
Load Factor: Load factor is defined as the ratio of the preferred number of entries that can be inserted in the Hash table before a size increment is required (a) to the total size of the hash table (b) i.e., load factor is (a/b).
Collision: A collision occurs when two keys are hashed to the same index in a hash table. Collisions are a problem because every slot in a hash table is supposed to store a single element. When Collision occurs it creates a chaining like a linked list and stores the keys.
Difference between Hash Table and Hashing:
|Sl No.||Hashing||Hash Table|
|1||Hashing is the process of transforming any given key or a string of characters into another value.||Hash Table is a container to store the key-value pairs.|
|2||Hashing is a built-in method. It can be defined by users also.||Hash table, HashMap, HashSet in Java and map, multimap, unordered_map, set etc. in C++ uses hashing to store data.|
|3||Hashing is used to generate a hashcode which is of type Integer.||Based on our needs we can use any type of hash table.|
|4||Hashing uses the same process for every key to generate hashcodes.||Hash Table generally works as a lookup table to check the keys we already came across and update or change the values being mapped with them or insert a new key in the table.|