A hash table lives inside the dictionary. A hash table, as opposed to an array, is a fixed allocation of heap memory. Once inserted into the chosen memory location, retrieval or deletion can be elegantly performed by sending the hashing function the desired key. Your data, sir. A hash table's algorithm and collision handling sets the stage for good to great performance.
Collision is what happens when two keys hash to the same memory slot.
The scripting.dictionary's response to hashed key collision is called chaining. You can scroll forward and back in the linked list to find the exact key being searched for. This type of collision handling exceeds the performance of even a balanced binary search tree. An array is nothing more than a dynamic chunk of memory given indexes and a storage area for storing pointers to the array's variant data. Locating a certain index is a matter of starting at the beginning of the memory area and looking at each subscript until you find the one which matches the key.