[Rust]HashMap(ハッシュマップ)のキーをVec(ベクタ)に変換するには?

Rust

どうも、ちょげ(@chogetarou)です。

HashMap(ハッシュマップ)のキー(key)をVec(ベクタ)に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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"]

コメント

タイトルとURLをコピーしました