Chaining

Store all colliding elements in an auxiliary data structure like a linked-list.

Each position in the hash table can be seen as a bucket that stores multiple entries, and thus this approach is sometimes called bucket hashing.

Other names for chaining include "separate chaining" (as in collisions are dealt with using separate data structures), "open hashing", "close addressing" (as oppose to open addressing).

Example
Resources