A HashMap is a data structure that stores key-value pairs. It uses a hash function to convert keys into an index where values are stored, allowing fast data retrieval.
Click to reveal answer
beginner
Why do we use a hash function in a HashMap?
A hash function converts a key into an index number. This index tells where to store or find the value in the underlying array, making lookups very fast.
Click to reveal answer
intermediate
What is a collision in a HashMap?
A collision happens when two different keys produce the same index from the hash function. We need a way to handle collisions to store both values correctly.
Click to reveal answer
intermediate
Name one common method to handle collisions in a HashMap.
One common method is chaining, where each index in the array holds a list of key-value pairs. If multiple keys hash to the same index, they are stored in the list.
Click to reveal answer
intermediate
What is the average time complexity for search, insert, and delete operations in a well-implemented HashMap?
The average time complexity is O(1) for search, insert, and delete, meaning these operations take constant time on average.
Click to reveal answer
What does a hash function do in a HashMap?
ARemoves duplicate keys
BSorts the keys alphabetically
CConverts a key into an index for storage
DEncrypts the values
✗ Incorrect
A hash function converts a key into an index where the value is stored.
What is a collision in a HashMap?
AWhen two keys produce the same index
BWhen a key is missing
CWhen two keys have the same value
DWhen the HashMap 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?
AChaining
BLinear probing
CRehashing
DSorting
✗ Incorrect
Chaining stores multiple key-value pairs in a list at the same index to handle collisions.
What is the average time complexity of searching in a good HashMap?
AO(n)
BO(log n)
CO(n log n)
DO(1)
✗ Incorrect
Searching in a well-implemented HashMap takes constant time on average, O(1).
In a HashMap, what data structure is commonly used to store multiple items at one index during collisions?
AArray
BLinked list
CStack
DQueue
✗ Incorrect
A linked list is commonly used to store multiple key-value pairs at one index in chaining.
Explain how a HashMap stores and retrieves data using a hash function and how collisions are handled.
Think about how keys become positions and what happens if two keys want the same spot.
You got /4 concepts.
Describe the average time complexity of HashMap operations and why it is efficient.
Focus on how the hash function helps find data quickly.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of a HashMap in data structures?
easy
A. To store key-value pairs for fast data retrieval
B. To store elements in a sorted order
C. To perform mathematical calculations
D. To store data sequentially like an array
Solution
Step 1: Understand the role of HashMap
A HashMap stores data as key-value pairs, allowing quick access to values using keys.
Step 2: Compare with other data structures
Unlike arrays or lists, HashMaps do not store data sequentially or sorted but focus on fast lookup.
Final Answer:
To store key-value pairs for fast data retrieval -> Option A
Quick Check:
HashMap = key-value fast access [OK]
Hint: HashMap = key-value pairs for quick lookup [OK]
Common Mistakes:
Confusing HashMap with arrays or lists
Thinking HashMap stores data in order
Assuming HashMap is for mathematical operations
2. Which of the following is the correct way to declare a HashMap in Go?
easy
A. var m = make(map[string]int)
B. var m map[string]int = map[string]int
C. var m = map[string]int()
D. var m map[string]int
Solution
Step 1: Understand Go map declaration
In Go, maps are created using make function: make(map[keyType]valueType).
Step 2: Check each option
A declares a nil map which cannot be used for assignments. B has invalid syntax (cannot assign type as value). C has incorrect syntax (cannot call map type as function). D uses make correctly.
Final Answer:
var m = make(map[string]int) -> Option A
Quick Check:
Use make() to create maps in Go [OK]
Hint: Use make(map[key]value) to create HashMap in Go [OK]
Common Mistakes:
Declaring without initializing (nil map)
Using map type without literal or make
Trying to call map as a function
3. What will be the output of the following Go code snippet implementing a simple HashMap?
Initially, "apple" is set to 5, then updated to 7, so the last value is 7.
Step 2: Print the value for key "apple"
Printing m["apple"] outputs the updated value 7.
Final Answer:
7 -> Option D
Quick Check:
Last assigned value for key is returned [OK]
Hint: Last value assigned to key is stored [OK]
Common Mistakes:
Assuming first value remains after update
Confusing zero value with stored value
Expecting compilation error due to reassignment
4. Identify the error in this Go code implementing a HashMap:
package main
import "fmt"
func main() {
var m map[string]int
m["key"] = 10
fmt.Println(m["key"])
}
medium
A. Key type is incorrect
B. Map is not initialized before use
C. Value type is incorrect
D. Print statement syntax error
Solution
Step 1: Check map initialization
The map variable m is declared but not initialized with make(), so it is nil.
Step 2: Understand assignment to nil map
Assigning to a nil map causes runtime panic because map is not ready to store data.
Final Answer:
Map is not initialized before use -> Option B
Quick Check:
Maps must be initialized with make() before assignment [OK]
Hint: Always initialize map with make() before adding keys [OK]
Common Mistakes:
Forgetting to initialize map before use
Assuming declaration alone creates map
Confusing map initialization with slice
5. You want to implement a HashMap from scratch in Go without using built-in maps. Which of the following is the best approach to handle collisions?
hard
A. Ignore collisions and store only one key-value pair per bucket
B. Overwrite existing key-value pair without checking
C. Use a linked list at each bucket to store multiple key-value pairs
D. Use an array of fixed size without hashing keys
Solution
Step 1: Understand collision in HashMap
When two keys hash to the same bucket, collision occurs and must be handled to store both pairs.
Step 2: Evaluate collision handling methods
Using a linked list at each bucket allows storing multiple pairs safely. Overwriting loses data, ignoring collisions loses data, and fixed arrays without hashing lose efficiency.
Final Answer:
Use a linked list at each bucket to store multiple key-value pairs -> Option C
Quick Check:
Separate chaining with linked lists handles collisions [OK]
Hint: Use linked lists per bucket to handle collisions [OK]
Common Mistakes:
Overwriting values on collision
Ignoring collisions causing data loss
Not using hashing for key distribution
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.