The main use for a hash table is to structure data in such a way that when given a known (int, string, etc) one is able to easily find that specific object in memory.
An example would be a hash table which holds integers.
Lets say the hash function of our hash table is (n modulo 10) or (n % 10).
Our dummy data will be: 1, 10, 15, 24, 51.
Passing each element through our hash function produces this hash table in memory:
[0] 1,10
[1] 51
[2]
[3]
[4] 24
[5] 15
[6]
[7]
[8]
[9]
Now lets say we want to find element: (15)
Passing 15 through our hash function leaves us with 5, when we look at memory address 5 we see our element 15!
You can think of how helpful hash tables can be when working with large amounts of data (think of a bank and how many customers they have, an employee cant afford to wait 10 minutes for the system to find 1 person).
These are some of the basic features of a hash table, but proper implementation of hash tables can drastically improve your programs speed.