0Pricing
Learn Rust Coding · Lección

HashMaps

Almacenamiento clave-valor

HashMaps es una lección gratuita de Learn Rust Coding en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn Rust Coding, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn Rust Coding incluye 4 lecciones en total.

¿Qué es un HashMap?

Un HashMap<K, V> almacena pares de clave y valor. Los valores se buscan mediante su clave, no mediante su posición.

Debe importarlo desde la biblioteca estándar.

use std::collections::HashMap;

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

Importar HashMap

HashMap no forma parte del preludio, por lo que debe añadir esta línea al principio del archivo:

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

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

Insertar pares

Añada entradas con insert, proporcionando una clave y un valor. El mapa debe ser mut.

use std::collections::HashMap;

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

Buscar valores

Use get para leer un valor mediante su clave. Devuelve un Option: Some(value) si lo encuentra y None en caso contrario.

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"),
    }
}

Actualizar un valor

Al llamar a insert con una clave existente, se reemplaza el valor anterior.

use std::collections::HashMap;

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

Insertar solo si falta

La API entry con or_insert inserta un valor predeterminado solo si falta la clave.

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

Contar con entry

Un patrón clásico: cuente las apariciones obteniendo una referencia mutable con or_insert e incrementándola.

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

Iterar las entradas

Recorra un HashMap para visitar cada par de clave y valor. El orden no está garantizado.

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

Eliminar entradas

Elimine un par con remove. Devuelve el valor eliminado como un 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());
}

Comprobar si existe una clave

Use contains_key para comprobar si existe una clave sin recuperar su valor.

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

Valor predeterminado con unwrap_or

Al leer un valor, puede proporcionar una alternativa con unwrap_or en lugar de evaluar el 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);
}

Comprobación rápida

Recuerde cómo funcionan las búsquedas en un HashMap.

Repaso

HashMaps en Rust:

  • HashMap<K, V> almacena pares de clave y valor; impórtelo desde std::collections.
  • insert añade o sobrescribe; get devuelve un Option.
  • entry().or_insert() inserta solo si la clave no existe.
  • Itere con 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"));
}

Preguntas frecuentes

¿La lección «HashMaps» es gratis?

Sí — el texto completo de «HashMaps» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn Rust Coding, actualiza a CoddyKit PRO. El curso de Learn Rust Coding incluye 4 lecciones en total.

¿Qué aprenderé en «HashMaps»?

Almacenamiento clave-valor Practicas Learn Rust Coding con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn Rust Coding?

No se requiere experiencia previa. Learn Rust Coding en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «HashMaps»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn Rust Coding?

Sí. Cada lección de Learn Rust Coding incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Vectores
  2. Strings y &str
  3. HashMaps
  4. Iteración sobre colecciones
← Volver a Learn Rust Coding