HashMap

    HashMap<K, V, S = RandomState>は、キーを使って値にアクセスするようなデータ型です。

    ::newでミュータブルなハッシュマップを作り、::insertで値を登録します。データへアクセスする場合はインデックスと同じく[K]を変数の後ろに置きます。

    use std::collections::HashMap;
    
    let mut hash_map: HashMap<&str, i32> = HashMap::new();
    
    hash_map.insert("nju", 33);
    
    assert_eq!(hash_map["nju"], 33);
    

    キーとなる値にはHashEqの両方を持っている型でなければなりません。

    キーを持ってるか

    ::contains_keyを使います。

    assert!(hash_map.contains_key("nju"));
    

    キーと値を削除

    ::removeで削除できます。

    hash_map.remove("nju");
    assert!(!hash_map.contains_key("nju"));
    

    すべてのキーを回して処理する

    参照はIntoIteratorを持つのでこれを使います。それぞれの処理の前にkeyvalueのタプルを受け取ります。

    for (key, value) in &hash_map {
      println!("{key}: {value}", key = key, value = value);
    }