1. Hashing is a technique that is used to map keys to values in a hash table using a hash function. It allows for fast lookup, insertion, and deletion of key-value pairs.
2. A hash table stores key-value pairs in an array. When looking up a value by its key, the hash function is applied to the key to get the index in the array where the value should be stored. Collisions can occur if two keys map to the same index.
3. Common collision resolution techniques include chaining, which stores multiple values at each index using linked lists, and open addressing techniques like linear probing, quadratic probing, and double hashing which search for the next available empty index.