Key -> Hashcode -> array of linked list->in case of collisions
The array copied itself to a new array each time, let's say doubling its origin size to get a new size array.
Even with resizing, the amortized insertion is still of O(1) time complexity.
Proof:
Given a array of size N, the total number of copies to insert N elements is roughly: