Explain how you would implement a custom hash map from scratch, including your strategy for handling collisions.