Rust - HashMap 모든 요소 순회

러스트에서 HashMap의 모든 요소를 순회하는 방법을 소개합니다.

1. for문으로 모든 Entry 순회

iter()는 HashMap의 모든 Entry를 가리키는 Iterator를 리턴합니다.

아래와 같이 for문으로 모든 Entry(key-value)를 참조할 수 있습니다.

use std::collections::HashMap;

fn main() {
    let mut my_map: HashMap<&str, &str> = HashMap::new();
    my_map.insert("a", "10");
    my_map.insert("b", "20");
    my_map.insert("c", "30");

    for (key, val) in my_map.iter() {
        println!("key: {}, val: {}", key, val);
    }
}

Output:

key: c, val: 30
key: a, val: 10
key: b, val: 20

순회 중 값 변경

아래와 같이 HashMap의 모든 요소를 순회하면서 value를 변경할 수 있습니다.

  • iter_mut()는 변경 가능한 iterator를 가져옴
use std::collections::HashMap;

fn main() {
    let mut my_map: HashMap<&str, i32> = HashMap::new();
    my_map.insert("a", 10);
    my_map.insert("b", 20);
    my_map.insert("c", 30);

    for (_, val) in my_map.iter_mut() {
        *val += 100;
    }

    for (key, val) in my_map.iter() {
        println!("key: {}, val: {}", key, val);
    }
}

Output:

key: b, val: 120
key: c, val: 130
key: a, val: 110

2. key 값들만 순회

my_map.keys()는 HashMap의 모든 key들에 대한 Iterator를 리턴하며, for문으로 아래와 같이 순회할 수 있습니다.

use std::collections::HashMap;

fn main() {
    let mut my_map: HashMap<&str, i32> = HashMap::new();
    my_map.insert("a", 10);
    my_map.insert("b", 20);
    my_map.insert("c", 30);

    for key in my_map.keys() {
        println!("key: {}", key);
    }
}

Output:

key: b
key: a
key: c

3. value 값들만 순회

my_map.keys()는 HashMap의 모든 key들에 대한 Iterator를 리턴하며, for문으로 아래와 같이 순회할 수 있습니다.

use std::collections::HashMap;

fn main() {
    let mut my_map: HashMap<&str, i32> = HashMap::new();
    my_map.insert("a", 10);
    my_map.insert("b", 20);
    my_map.insert("c", 30);

    for value in my_map.values() {
        println!("value: {}", value);
    }
}

Output:

value: 10
value: 20
value: 30
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha