0Pricing
Learn Rust Coding · Leçon

HashMaps

Stockage clé-valeur

HashMaps est une leçon Learn Rust Coding gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn Rust Coding, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn Rust Coding comprend 4 leçons au total.

Qu'est-ce qu'une HashMap ?

Une HashMap<K, V> stocke des paires clé-valeur. Vous recherchez les valeurs à l'aide de leur clé plutôt que de leur position.

Vous devez l'importer depuis la bibliothèque standard.

use std::collections::HashMap;

fn main() {
    let map: HashMap<String, i32> = HashMap::new();
    println!("{} entries", map.len());
}

Importer HashMap

HashMap ne fait pas partie du prélude ; ajoutez donc cette ligne en haut de votre fichier :

  • use std::collections::HashMap;
use std::collections::HashMap;

fn main() {
    let scores: HashMap<&str, i32> = HashMap::new();
    println!("empty: {}", scores.is_empty());
}

Insérer des paires

Ajoutez des entrées avec insert en fournissant une clé et une valeur. La table doit être mut.

use std::collections::HashMap;

fn main() {
    let mut scores = HashMap::new();
    scores.insert("Alice", 90);
    scores.insert("Bob", 85);
    println!("{:?}", scores);
}

Rechercher des valeurs

Utilisez get pour lire une valeur à partir d'une clé. La méthode renvoie une Option — Some(value) si la valeur est trouvée, et None dans le cas contraire.

use std::collections::HashMap;

fn main() {
    let mut scores = HashMap::new();
    scores.insert("Alice", 90);
    match scores.get("Alice") {
        Some(s) => println!("score {}", s),
        None => println!("not found"),
    }
}

Mettre à jour une valeur

Appeler insert avec une clé existante remplace l'ancienne valeur.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("count", 1);
    map.insert("count", 5); // overwrites
    println!("{:?}", map.get("count"));
}

Insérer uniquement en l'absence de clé

L'API entry avec or_insert insère une valeur par défaut uniquement si la clé est absente.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.entry("x").or_insert(10);
    map.entry("x").or_insert(99); // ignored, key exists
    println!("{:?}", map.get("x"));
}

Compter avec entry

Schéma classique : comptez les occurrences en obtenant une référence mutable avec or_insert, puis en l'incrémentant.

use std::collections::HashMap;

fn main() {
    let text = "a b a c b a";
    let mut counts = HashMap::new();
    for word in text.split_whitespace() {
        let c = counts.entry(word).or_insert(0);
        *c += 1;
    }
    println!("{:?}", counts);
}

Parcourir les entrées

Parcourez une HashMap pour visiter chaque paire clé-valeur. L'ordre n'est pas garanti.

use std::collections::HashMap;

fn main() {
    let mut ages = HashMap::new();
    ages.insert("Tom", 30);
    ages.insert("Sue", 25);
    for (name, age) in &ages {
        println!("{} is {}", name, age);
    }
}

Supprimer des entrées

Supprimez une paire avec remove. La méthode renvoie la valeur supprimée sous forme d'une Option.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("key", 42);
    let removed = map.remove("key");
    println!("removed {:?}, len {}", removed, map.len());
}

Vérifier la présence d'une clé

Utilisez contains_key pour vérifier qu'une clé existe sans récupérer sa valeur.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("on", true);
    println!("{}", map.contains_key("on"));
    println!("{}", map.contains_key("off"));
}

Valeur par défaut avec unwrap_or

Lors de la lecture, vous pouvez fournir une solution de repli avec unwrap_or au lieu de faire correspondre l'Option.

use std::collections::HashMap;

fn main() {
    let mut map = HashMap::new();
    map.insert("a", 1);
    let value = map.get("missing").unwrap_or(&0);
    println!("{}", value);
}

Vérification rapide

Rappelez-vous comment fonctionnent les recherches dans une HashMap.

Récapitulatif

Les HashMaps en Rust :

  • HashMap<K, V> stocke des paires clé-valeur ; importez-la depuis std::collections.
  • insert ajoute ou remplace ; get renvoie une Option.
  • entry().or_insert() insère uniquement si la clé est absente.
  • Parcourez-la avec for (k, v) in &map.
use std::collections::HashMap;

fn main() {
    let mut inventory = HashMap::new();
    inventory.insert("apples", 3);
    *inventory.entry("apples").or_insert(0) += 2;
    println!("{:?}", inventory.get("apples"));
}

Questions Fréquemment Posées

La leçon « HashMaps » est-elle gratuite ?

Oui — le texte complet de « HashMaps » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn Rust Coding, passe à CoddyKit PRO. Le cours Learn Rust Coding comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « HashMaps » ?

Stockage clé-valeur Tu pratiques Learn Rust Coding avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn Rust Coding ?

Aucune expérience préalable n'est requise. Learn Rust Coding sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « HashMaps » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn Rust Coding ?

Oui. Chaque leçon Learn Rust Coding inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Vecteurs
  2. Chaînes et &str
  3. HashMaps
  4. Parcours des collections
← Retour à Learn Rust Coding