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

Rust

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

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

スポンサーリンク

方法

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

HashMap(ハッシュマップ)のキー(key)と値(value)のペアをそのままVec(ベクタ)に変換するには、iter()を使います。

まず、iter()を呼び出します。

そして、iter()からcollect()を呼び出します。

//map=対象のマップ, T=値の型
let pair: Vec<_> = map.iter().collect::<Vec<_>>();

上記のcollect()は、HashMap(ハッシュマップ)のキーと値のペア(key-value pair)を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 pair: Vec<_> = numbers.iter().collect::<Vec<_>>();
    
    println!("{:?}", pair);
}
出力:
[("four", 4), ("five", 5), ("one", 1), ("three", 3), ("two", 2)]

コメント

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