VecからHashSetを作成したい場合、まずcollect
を利用する方法があります。メソッドチェーンで書ける、型推論が活用できるという点で個人的にはこちらが好みです。
let v = vec![1, 2, 2, 3, 3, 3];
let s = v.into_iter().collect::<HashSet<_>>();
もしくは、HashSet::from_iter
を利用する方法もあります。ただし型推論がうまくいかずに、型の明示が必要になる場合があります。
let v: Vec<i32> = vec![1, 2, 2, 3, 3, 3];
let s: HashSet<i32> = HashSet::from_iter(v.iter().cloned());
環境情報
- rustc 1.76.0 (07dca489a 2024-02-04)
- cargo 1.76.0 (c84b36747 2024-01-18)