Rust - HashMap을 Vector로 변환

러스트에서 HashMap을 벡터로 변환하는 방법을 소개합니다.

1. Entry(key-value)를 Vector로 변환

Vec::from_iter(iter)는 Vector를 생성할 때 Iterator의 요소들을 초기 값으로 추가합니다.

아래와 같이 Entry에 대한 Iterator를 전달하여 Vector로 변환할 수 있습니다.

use std::collections::HashMap;

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

    let vec = Vec::from_iter(my_map.iter());
    println!("{:?}", vec);
}

Output:

[("c", "30"), ("a", "10"), ("b", "20")]

2. 모든 key를 Vector로 변환

Vec::from_iter(iter)는 Vector를 생성할 때 Iterator의 요소들을 초기 값으로 추가합니다.

아래와 같이 모든 key에 대한 Iterator를 전달하여 Vector로 변환할 수 있습니다.

use std::collections::HashMap;

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

    let vec = Vec::from_iter(my_map.keys());
    println!("{:?}", vec);
}

Output:

["c", "b", "a"]

3. 모든 value를 Vector로 변환

Vec::from_iter(iter)는 Vector를 생성할 때 Iterator의 요소들을 초기 값으로 추가합니다.

아래와 같이 모든 value에 대한 Iterator를 전달하여 Vector로 변환할 수 있습니다.

use std::collections::HashMap;

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

    let vec = Vec::from_iter(my_map.values());
    println!("{:?}", vec);
}

Output:

["20", "10", "30"]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha