## TL;DR

A hash table maps keys to values with average O(1) operations. Powers JavaScript Objects, Python dicts, database indexes. Collision resolution: chaining (linked lists) or open addressing (probing). Rehashing triggers at ~75% load factor.

## Core Explanation

Hash function: maps key to integer index. Good hash functions minimize collisions and are fast (non-cryptographic: MurmurHash, xxHash). Cryptographic hashes (SHA) are unnecessary and slow for hash tables. Separate chaining is simpler but uses more memory; open addressing is cache-friendly but degrades at high load.

## Further Reading

- [Introduction to Algorithms (CLRS)](undefined)