How to combine 2 maps into a third map in Rust

2 Answers

0 votes
use std::collections::HashMap;

fn main() {
    let mut map1 = HashMap::new();
    map1.insert("A", "aaa");
    map1.insert("B", "bbb");

    let mut map2 = HashMap::new();
    map2.insert("C", "ccc");
    map2.insert("B", "XYZ"); // Overwrites key "B"
    map2.insert("D", "ddd");

    let mut combined = map1.clone(); // Start with map1

    for (key, value) in map2 {
        combined.insert(key, value); // Overwrites if key exists
    }

    for (key, value) in &combined {
        println!("{} => {}", key, value);
    }
}




/*
run:

C => ccc
D => ddd
A => aaa
B => XYZ

*/
 


answered Aug 26, 2025 by avibootz
0 votes
use std::collections::BTreeMap;

// Using BTreeMap for Ordered Keys (preserve key order)

fn main() {
    let mut map1 = BTreeMap::new();
    map1.insert("A", "aaa");
    map1.insert("B", "bbb");

    let mut map2 = BTreeMap::new();
    map2.insert("C", "ccc");
    map2.insert("B", "XYZ"); 
    map2.insert("D", "ddd");

    let mut combined = map1.clone();

    for (key, value) in map2 {
        combined.insert(key, value);
    }

    for (key, value) in &combined {
        println!("{} => {}", key, value);
    }
}




/*
run:

A => aaa
B => XYZ
C => ccc
D => ddd

*/

 



answered Aug 26, 2025 by avibootz

Related questions

1 answer 87 views
1 answer 90 views
1 answer 99 views
1 answer 113 views
1 answer 145 views
2 answers 104 views
...