どうも、ちょげ(@chogetarou)です。
HashMap(ハッシュマップ)のキー(key)をVec(ベクタ)に変換する方法を紹介します。
方法

HashMap(ハッシュマップ)のキー(key)をVec(ベクタ)に変換するには、keys()を使います。
まず、HashMapからkeys()を呼び出します。
keys()からcloned()を呼び出します。
そして、cloned()からcollect()を呼び出します。
//map=対象のマップ, T=キーの型
let keys: Vec<T> = map.keys().cloned().collect::<Vec<T>>();
上記のcollect()は、HashMap(ハッシュマップ)のキー(key)をVec(ベクタ)として取得します。
使用例
use std::collections::HashMap;
fn main() {
let mut numbers = HashMap::new();
numbers.insert("one", 1);
numbers.insert("two", 2);
numbers.insert("three", 3);
numbers.insert("four", 4);
numbers.insert("five", 5);
let keys: Vec<&str> = numbers.keys().cloned().collect::<Vec<&str>>();
println!("{:?}", keys);
}
出力:
["one", "four", "three", "two", "five"]
コメント