Dictionary is a collection of key-value pairs (k, v) which we call items, where k is a key and v is a value that is associated with that key. Dictionaries can be both ordered or unordered. We here assume that the keys are unique then the key associated with the object can be viewed as the address for that object in memory.
A map that allows us to store multiple values for the same key is called multimap.
If keys are not integers in range (0, N-1) we use h (Hash Function) that maps each key to an integer in that range [0, N-1].
One complication that we have to deal with when using this approach, is that it is possible hash function could map two distinct keys to the same location in array A. We refer such a pair of keys with same hash value j as collision at j.