A hash table is a data structure that stores key-value pairs. It uses a hash function to convert keys into an index where the value is stored, allowing fast data retrieval.
Click to reveal answer
beginner
What is the role of a hash function in a hash table?
A hash function takes a key and returns an integer index. This index tells where to store or find the value in the hash table.
Click to reveal answer
intermediate
Why do collisions happen in a hash table?
Collisions happen when two different keys produce the same index from the hash function. This means both values want to be stored in the same spot.
Click to reveal answer
intermediate
Name one common method to handle collisions in hash tables.
One common method is chaining, where each index stores a list of key-value pairs. If multiple keys map to the same index, they are stored in the list.
Click to reveal answer
intermediate
What properties make a good hash function?
A good hash function distributes keys evenly across the table, is fast to compute, and minimizes collisions.
Click to reveal answer
What does a hash function do in a hash table?
AConverts a key into an index
BStores the value directly
CSorts the keys alphabetically
DDeletes duplicate keys
✗ Incorrect
A hash function converts a key into an index where the value is stored or retrieved.
What is a collision in a hash table?
AWhen two keys produce the same index
BWhen a key is not found
CWhen two keys have the same value
DWhen the table is empty
✗ Incorrect
A collision happens when two different keys produce the same index from the hash function.
Which method stores multiple key-value pairs at the same index to handle collisions?
ALinear probing
BSorting
CRehashing
DChaining
✗ Incorrect
Chaining stores multiple key-value pairs in a list at the same index to handle collisions.
Which property is NOT important for a good hash function?
AMinimizing collisions
BFast computation
CSorting keys alphabetically
DEven distribution of keys
✗ Incorrect
Sorting keys alphabetically is not a property of a hash function.
What is stored in a hash table?
AOnly keys
BKey-value pairs
CIndexes only
DOnly values
✗ Incorrect
A hash table stores key-value pairs.
Explain how a hash table uses a hash function to store and retrieve data.
Think about how a key becomes a place to find the value.
You got /3 concepts.
Describe what a collision is in a hash table and one way to handle it.
Imagine two friends wanting the same seat.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of a hash function in a hash table?
easy
A. To encrypt the data stored in the table
B. To sort the keys in ascending order
C. To convert a key into an index for storing values
D. To count the number of elements in the table
Solution
Step 1: Understand the role of a hash function
A hash function takes a key and transforms it into an index number that points to a location in the hash table.
Step 2: Compare options with the hash function role
Only To convert a key into an index for storing values describes converting a key into an index, which is the main purpose of a hash function.
Final Answer:
To convert a key into an index for storing values -> Option C
Quick Check:
Hash function = key to index [OK]
Hint: Hash function maps keys to indexes in the table [OK]
Common Mistakes:
Thinking hash functions sort keys
Confusing hashing with encryption
Believing hash functions count elements
2. Which of the following is the correct way to declare a HashMap in Java using built-in classes?
easy
A. Hashtable map = new Hashtable();
B. HashMap map = new HashMap<>();
C. HashTable map = new HashTable<>();
D. HashMap map = new HashMap();
Solution
Step 1: Identify correct class names and syntax
Java's standard hash table class is HashMap (case-sensitive). Hashtable is also valid but legacy and requires type parameters.
Step 2: Check each option's syntax
HashMap map = new HashMap<>(); uses correct generic syntax with HashMap. Hashtable map = new Hashtable(); misses generics. HashTable map = new HashTable<>(); uses wrong class name 'HashTable' (capital T). HashMap map = new HashMap(); reverses generic placement incorrectly.
Hint: Use HashMap with generics and diamond operator <> [OK]
Common Mistakes:
Using wrong class name 'HashTable'
Omitting generics for type safety
Incorrect generic syntax placement
3. What will be the output of the following Java code snippet?
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.put("apple", 30);
System.out.println(map.get("apple"));
}
}
medium
A. 30
B. 20
C. 10
D. null
Solution
Step 1: Understand put() behavior in HashMap
When a key already exists, put() replaces the old value with the new one.
Step 2: Trace the put() calls for key "apple"
First put("apple", 10) adds key with value 10. Second put("apple", 30) replaces value 10 with 30.
Final Answer:
30 -> Option A
Quick Check:
Last value for "apple" = 30 [OK]
Hint: Last put for a key overwrites previous value [OK]
Common Mistakes:
Assuming values accumulate instead of overwrite
Confusing keys and values
Expecting null for existing keys
4. Identify the error in the following Java code that uses a hash table:
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap map = new HashMap<>();
map.put(1, "One");
map.put(2, "Two");
System.out.println(map.get("1"));
}
}
medium
A. HashMap cannot store Integer keys
B. Missing import statement for HashMap
C. Incorrect syntax for put() method
D. Using wrong key type in get() method
Solution
Step 1: Check key types used in HashMap and get()
The HashMap is declared with Integer keys. The get() method is called with a String "1" instead of Integer 1.
Step 2: Understand type mismatch effect
Since keys are Integer, get("1") returns null because "1" (String) is not equal to 1 (Integer).
Final Answer:
Using wrong key type in get() method -> Option D
Quick Check:
Key type mismatch causes null result [OK]
Hint: Match key types exactly when using get() [OK]
Common Mistakes:
Passing String key instead of Integer
Ignoring type safety warnings
Assuming automatic type conversion
5. You want to design a hash function for a hash table that stores student IDs (integers) as keys. Which of the following hash functions is best to minimize collisions for IDs mostly ranging from 1000 to 9999?
hard
A. hash(key) = key % 100
B. hash(key) = key % 10000
C. hash(key) = key / 1000
D. hash(key) = key % 10
Solution
Step 1: Analyze the key range and hash function outputs
Keys range from 1000 to 9999. Using modulo 10 (hash(key) = key % 10) gives only 10 buckets, causing many collisions. Modulo 10000 (hash(key) = key % 10000) returns the key itself, which is too large for typical table size. Division by 1000 (hash(key) = key / 1000) gives values 1 to 9, only 9 buckets, too small.