HashMap
HashMap: Referenz und Mutation
Abschnitt betitelt „HashMap: Referenz und Mutation“use std::collections::HashMap;fn main() { let mut h = HashMap::new(); h.insert("k1", 0); let v1 = &h["k1"]; h.insert("k2", 1); let v2 = &h["k2"]; println!("{} {}", v1, v2);}h kann nicht mutiert werden (h.insert("k2", 1)), solange eine unveränderliche Referenz (v1) darauf aktiv ist.
HashMap: Zeichenindizes summieren
Abschnitt betitelt „HashMap: Zeichenindizes summieren“use std::collections::HashMap;fn main() { let mut h: HashMap<char, Vec<usize>> = HashMap::new(); for (i, c) in "hello!".chars().enumerate() { h.entry(c).or_insert(Vec::new()).push(i); } let mut sum = 0; for i in h.get(&'l').unwrap() { sum += *i; } println!("{}", sum);}Dieses Programm speichert einen Vektor von Indizes für jedes Vorkommen eines bestimmten Buchstabens in einer HashMap. Anschließend werden alle Indizes für den Buchstaben ‘l’ summiert, der in der Zeichenkette rust"hello!" an den Indizes 2 und 3 vorkommt.