Bird
Raised Fist0
DSA Rustprogramming~10 mins

Why Hash Map Exists and What Problem It Solves in DSA Rust - Test Your Knowledge

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create an empty hash map in Rust.

DSA Rust
let mut scores = std::collections::HashMap::[1]();
Drag options to blanks, or click blank then click option'
Anew
Bcreate
Cinit
Dbuild
Attempts:
3 left
💡 Hint
Common Mistakes
Using methods like create or init which do not exist for HashMap.
Trying to instantiate HashMap without calling a method.
2fill in blank
medium

Complete the code to insert a key-value pair into the hash map.

DSA Rust
scores.[1]("Blue", 10);
Drag options to blanks, or click blank then click option'
Aadd
Binsert
Cpush
Dset
Attempts:
3 left
💡 Hint
Common Mistakes
Using add or push which are not methods for HashMap.
Using set which is not a Rust HashMap method.
3fill in blank
hard

Fix the error in the code to get the value for a key from the hash map.

DSA Rust
let score = scores.[1]("Blue");
Drag options to blanks, or click blank then click option'
Alookup
Bget_value
Cfind
Dget
Attempts:
3 left
💡 Hint
Common Mistakes
Using get_value or find which do not exist for HashMap.
Using lookup which is not a Rust HashMap method.
4fill in blank
hard

Fill both blanks to check if a key exists and then print its value.

DSA Rust
if scores.[1]("Blue") {
    println!("Score: {}", scores.[2]("Blue").unwrap());
}
Drag options to blanks, or click blank then click option'
Aget
Bcontains_key
Cinsert
Dremove
Attempts:
3 left
💡 Hint
Common Mistakes
Using insert or remove instead of contains_key or get.
Mixing up the order of methods.
5fill in blank
hard

Fill all three blanks to create a hash map from a vector of tuples and print all key-value pairs.

DSA Rust
let teams = vec![("Blue", 10), ("Yellow", 50)];
let scores: std::collections::HashMap<_, _> = teams.[1]().[2]();
for (key, value) in scores.[3]() {
    println!("{}: {}", key, value);
}
Drag options to blanks, or click blank then click option'
Ainto_iter
Bcollect
Citer
Dkeys
Attempts:
3 left
💡 Hint
Common Mistakes
Using keys() instead of iter() to loop over entries.
Using iter() instead of into_iter() when collecting.
Forgetting to collect into a HashMap.

Practice

(1/5)
1. Why do we use a HashMap in Rust instead of a simple list or array?
easy
A. To save memory by compressing data
B. To store values in a sorted order automatically
C. To quickly find values by keys without searching the entire collection
D. To allow duplicate keys with different values

Solution

  1. Step 1: Understand the problem with lists/arrays

    Lists require checking each item one by one to find a value, which is slow for large data.
  2. Step 2: How HashMap solves this

    HashMap uses keys to jump directly to the value, making lookup very fast.
  3. Final Answer:

    To quickly find values by keys without searching the entire collection -> Option C
  4. Quick Check:

    Fast key-based lookup = C [OK]
Hint: HashMap = fast key lookup, not ordered or duplicates [OK]
Common Mistakes:
  • Thinking HashMap sorts data automatically
  • Believing HashMap compresses data
  • Assuming HashMap allows duplicate keys
2. Which of the following is the correct way to create an empty HashMap in Rust?
easy
A. let map = HashMap::new();
B. let map = HashMap();
C. let map = new HashMap();
D. let map = HashMap[];

Solution

  1. Step 1: Recall Rust syntax for creating HashMap

    Rust uses ::new() method to create an empty HashMap.
  2. Step 2: Check each option

    Only HashMap::new() is valid syntax; others are incorrect.
  3. Final Answer:

    let map = HashMap::new(); -> Option A
  4. Quick Check:

    Correct Rust HashMap creation = B [OK]
Hint: Use HashMap::new() to create empty map in Rust [OK]
Common Mistakes:
  • Using parentheses instead of ::new()
  • Trying to use new keyword like other languages
  • Using square brackets for initialization
3. What will be the output of this Rust code?
use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("apple", 3);
    map.insert("banana", 2);
    map.insert("apple", 5);
    println!("{:?}", map.get("apple"));
}
medium
A. Some(3)
B. Compilation error
C. None
D. Some(5)

Solution

  1. Step 1: Understand insert behavior in HashMap

    Inserting a key that already exists updates its value to the new one.
  2. Step 2: Trace the insertions and get

    "apple" first gets 3, then updated to 5. So, map.get("apple") returns Some(5).
  3. Final Answer:

    Some(5) -> Option D
  4. Quick Check:

    Updated value returned = D [OK]
Hint: Inserting same key updates value, get returns latest [OK]
Common Mistakes:
  • Thinking insert adds duplicate keys
  • Expecting original value after update
  • Confusing None with Some
4. Identify the error in this Rust code using HashMap:
use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("key1", 10);
    let value = map["key2"];
    println!("{}", value);
}
medium
A. HashMap::new() is not the correct way to create a map
B. Using square brackets to access a non-existent key causes panic
C. Cannot insert values into a mutable HashMap
D. Missing semicolon after insert statement

Solution

  1. Step 1: Check how map access works

    Using square brackets with a key that does not exist causes the program to panic at runtime.
  2. Step 2: Identify the error in code

    Accessing "key2" which was never inserted triggers panic, causing runtime error.
  3. Final Answer:

    Using square brackets to access a non-existent key causes panic -> Option B
  4. Quick Check:

    Non-existent key access panics = A [OK]
Hint: Square brackets panic if key missing; use get() for safe access [OK]
Common Mistakes:
  • Thinking HashMap::new() is wrong
  • Believing insert needs immutable map
  • Ignoring runtime panic on missing key
5. You want to count how many times each word appears in a list using a HashMap in Rust. Which approach correctly solves this problem?
hard
A. Use entry() method to update count or insert 1 if missing
B. Insert each word with value 1, then insert again with value 1 for duplicates
C. Store words in a vector and count manually later
D. Use a HashMap but clear it after each insertion

Solution

  1. Step 1: Understand counting with HashMap

    We need to increase count if word exists, or add with count 1 if new.
  2. Step 2: Use entry() API for efficient update

    The entry() method allows checking and updating count in one step safely.
  3. Final Answer:

    Use entry() method to update count or insert 1 if missing -> Option A
  4. Quick Check:

    Counting words with entry() = A [OK]
Hint: Use entry().or_insert(0) to count frequencies easily [OK]
Common Mistakes:
  • Inserting 1 repeatedly without updating count
  • Using vector instead of HashMap for counting
  • Clearing map after each insert
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard