私はアイテムのコレクションを繰り返し表示しています。そのアイテムをキーとし、元のコレクションに何回出現させるかを数えたHashMap
を作成します。値の集まりを数える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
}
しかし、よりエレガントな解決策があるかどう私は思っていました。私はcollect()
を使用することを考えていましたが、アイテム間の状態を維持していないので、必要なものをサポートしていないようです。
これは私が'Anagram' problem on Exercismに私の解決策を書いていたときに出てきました。