Rust 程式語言中的 HashMap


HashMap 是一個重要的資料結構,因為它允許我們在鍵值對中儲存資料。在 Rust 中,HashMap 按鍵儲存值。

HashMap 鍵可以是布林值整數字串或實現EqHash 特性的任何其他資料型別。

HashMap 可以增大,當空間變得過於大時,它們也可以自行縮小。

我們可以透過多種方式建立一個 HashMap,我們既可以使用HashMap::with_capacity(uint) 也可以使用 HashMap::new()。

以下是 HashMap 支援的方法

  • insert()
  • get()
  • remove()
  • iter()

示例

讓我們看一個我們構建一個 HashMap 並使用上述所有這些操作的示例。

考慮下面顯示的示例。

 線上演示

use std::collections::HashMap;

fn call(number: &str) -> &str {
   match number {
      "798-133" => "We're sorry. Please hang up and try again.",
      "645-7698" => "Hello, What can I get for you today?",
      _ => "Hi! Who is this again?"
   }
}
fn main() {
   let mut contacts = HashMap::new();
   contacts.insert("Mukul", "798-133");
   contacts.insert("Mayank", "645-7698");
   contacts.insert("Karina", "435-8291");
   contacts.insert("Rahul", "956-1745");
   match contacts.get(&"Mukul") {
      Some(&number) => println!("Calling Mukul: {}", call(number)),
      _ => println!("Don't have Mukul's number."),
   }
   // `HashMap::insert()` returns `None`
   contacts.insert("Mukul", "164-6743");
   match contacts.get(&"Mayank") {
      Some(&number) => println!("Calling Mayank: {}", call(number)),
      _ => println!("Don't have Mayank's number."),
   }
   contacts.remove(&"Mayank");
   // `HashMap::iter()` returns an iterator that yields
   // (&'a key, &'a value) pairs in arbitrary order.
   for (contact, &number) in contacts.iter() {
      println!("Calling {}: {}", contact, call(number));
   }
}

輸出

Calling Mukul: We're sorry. Please hang up and try again.
Calling Mayank: Hello, What can I get for you today?
Calling Mukul: Hi! Who is this again?
Calling Karina: Hi! Who is this again?
Calling Rahul: Hi! Who is this again?

更新時間:2021-04-03

瀏覽量:524

啟動你的 職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.