
Хешмапы - это почти магия: вы добавляете несколько (или даже много) пар "ключ-значение", а потом можете получать значения по ключу за время O(1). Это невероятно удобно! Настолько удобно, что динамические языки вроде Lua или JavaScript по сути представляют собой большую коллекцию специализированных хешмап.
Но как это вообще работает? Как хешмапа может искать среди стольких элементов так быстро? И какой способ понять это лучше, чем реализовать свою собственную хешмапу?