我有一组重复的项目,我想创建一个HashMap以项目为键的项目,以及它们在原始集合中出现的次数。
我正在处理的具体示例是一个字符串,我想计算每个字符出现的次数。
我可以做这样的事情:
fn into_character_map(word: &str) -> HashMap<char, i32> {
let mut characters = HashMap::new();
for c in word.chars() {
let entry = characters.entry(c).or_insert(0);
*entry += 1;
}
characters
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更优雅的解决方案。我正在考虑使用collect(),但它不维护项目之间的状态,所以似乎不支持我需要的东西。
这是在我为Exercism 上的“字谜”问题编写解决方案时出现的。
rust ×1