Cómo realizar búsqueda e inserción eficientes en HashMap en Rust
¡Saludos, colegas! Soy nuevo en Rust y me encontré con un problema al trabajar con `HashMap`. Necesito implementar un diccionario de frecuencias: leer líneas de un archivo de texto, contar el número de ocurrencias de cada palabra y mostrar el top 10. En otros lenguajes (por ejemplo, Python), simplemente hacía `dict[word] = dict.get(word, 0) + 1`. Pero en Rust es más complicado.
Aquí está mi código, que funciona pero parece terriblemente ineficiente:
```rust
use std::collections::HashMap;
fn main() {
let text = "hello world hello rust rust rust";
let mut map: HashMap<&str, u32> = HashMap::new();
for word in text.split_whitespace() {
if map.contains_key(word) {
let count = map.get(word).unwrap();
map.insert(word, count + 1);
} else {
map.insert(word, 1);
}
}
println!("{:?}", map);
}
```
Problemas:
1. Hago dos accesos a `HashMap` por cada palabra: primero verifico `contains_key`, luego `get`, luego `insert`. Parece derrochador