typestar

HashSet en Rust

Pertenencia y álgebra de conjuntos, sin valores duplicados por construcción.

use std::collections::HashSet;

fn main() {
    let a: HashSet<i32> = [1, 2, 3, 4].into_iter().collect();
    let b: HashSet<i32> = [3, 4, 5].into_iter().collect();

    let mut both: Vec<&i32> = a.intersection(&b).collect();
    both.sort();
    println!("{:?}", both);

    let mut only_a: Vec<&i32> = a.difference(&b).collect();
    only_a.sort();
    println!("{:?}", only_a);

    let mut seen = HashSet::new();
    println!("{} {}", seen.insert("fig"), seen.insert("fig"));
}

Cómo funciona

  1. insert devuelve false cuando el valor ya estaba.
  2. intersection y difference producen iteradores, no conjuntos.
  3. collect arma un conjunto directo desde un iterador.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
441
Tokens
172
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 115 segundos.

Escribe este fragmento

Paso 6 de 8 en Colecciones; paso 35 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →

HashSet en otros lenguajes