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);
}