perform these operations in ( expected time in generala hash table consists of two major componentsa bucket array and hash function bucket arrays bucket array for hash table is an array of size nwhere each cell of is thought of as "bucket(that isa collection of key-value pairsand the integer defines the capacity of the array if the keys are integers well distributed in the range [ , ]this bucket array is all that is needed an entry with key is simply inserted into the bucket [ (see figure to save spacean empty bucket may be replaced by null object figure bucket array of size for the entries ( , )( , )( , )( , )( , )( ,cand ( )if our keys are unique integers in the range [ , ]then each bucket holds at most one entry thussearchesinsertionsand removals in the bucket array take ( time this sounds like great achievementbut it has two drawbacks firstthe space used is proportional to thusif is much larger than the number of entries actually present in the mapwe have waste of space the second draw back is that keys are required to be integers in the range [ ]which is often not the case because of these two drawbackswe use the bucket array in conjunction with "goodmapping from the keys to the integers in the range [ , hash functions the second part of hash table structure is functionhcalled hash functionthat maps each key in our map to an integer in the range [ , ]where is the capacity of the bucket array for this table equipped with such hash functionhwe can apply the bucket array method to arbitrary keys the main idea of this approach is to use the hash function valueh( )as an index into our bucket arrayainstead of the key (which is most likely inappropriate for use as bucket array indexthat iswe store the entry (kvin the bucket [ ( )