Argomenti importanti di Rust

Rust HashMap

Store values under keys and look them up fast: insert, get, entry and counting.

  • Avanzato
  • 3 min di lettura
  • 1 esempio eseguibile
Cosa imparerai
  • insert and get
  • entry().or_insert()
  • Sorting the keys
stock
"apple"5
"pear"5
"plum"1

Values found by key

A HashMap<K, V> stores values under keys, so you can find a value quickly by its key. It is Rust's version of a dictionary or associative array.

insert adds or replaces a value. entry(key).or_insert(0) returns the existing value or inserts a default, which makes counting easy. get returns an Option because the key may be missing. A HashMap has no fixed order, so the keys are sorted before printing.

Punti chiave

  1. get returns an Option: the key may be missing.
  2. entry(key).or_insert(0) is the counting pattern.
  3. A HashMap has no fixed order.

Esempio Rust eseguibile

Rust
Esegui il codice →
main.rs
use std::collections::HashMap;

fn main() {
    let mut stock: HashMap<String, u32> = HashMap::new();
    stock.insert(String::from("apple"), 3);
    stock.insert(String::from("pear"), 5);

    *stock.entry(String::from("apple")).or_insert(0) += 2;
    stock.entry(String::from("plum")).or_insert(1);

    println!("apples: {}", stock["apple"]);
    println!("has kiwi: {}", stock.contains_key("kiwi"));

    if let Some(count) = stock.get("pear") {
        println!("pears: {count}");
    }

    let mut names: Vec<&String> = stock.keys().collect();
    names.sort();
    println!("{:?}", names);
}
Crea un pulsante Run per questo esempio Risultato dell'esecuzione
apples: 5
has kiwi: false
pears: 5
["apple", "pear", "plum"]

Esercitati

Apri l'esempio nel compilatore online, cambia un valore o aggiungi una riga e prova a prevedere l'output prima di eseguirlo. Poi rompi il codice di proposito e leggi il messaggio del compilatore.

Hai finito questa lezione?

Segnala come imparata per tenere traccia dei tuoi progressi.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide