Rust HashSet与BTreeSet的实现细节:集合类型的底层逻辑在 Rust 标准库中,集合(Set)本质上是键(Key)的集合,但在底层实现上,它们复用了映射(Map)的逻辑。具体来说,HashSet<T> 和 BTreeSet<T> 分别是 HashMap<T, ()> 和 BTreeMap<T, ()> 的一层轻量级封装。这种设计不仅减少了代码重复,还利用了 Rust 的零大小类型(ZST)优化——由于 () 不占用内存,底层的 Map 实现能够自动消除值的存储开销。理解这一点,是掌握 Rust 集合类型性能特征和内存布局的起点。本文将深入剖析这两种 Set 的