基础工具
基础工具 · androidx.collection
Collection:高效数据结构Collection 1.7.0-alpha01
ScatterMap、ObjectList 与专用类型集合在什么场景值得直接用。
最后更新 2026-07-31
val map = mutableScatterMapOf("a" to 1, "b" to 2)androidx.collection 提供不依赖标准库集合的高效数据结构。源码按元素类型拆分(IntList、LongList、FloatSet、IntObjectMap 等),避免装箱开销;ScatterMap/ScatterSet 是无装箱的散列容器。
什么时候值得用
- 热点路径:每帧或每次重组都要创建/遍历的小型容器,装箱与分配会成为 GC 压力来源。
- 多平台:
commonMain实现,在 Compose 与 Kotlin Multiplatform 中通用。 - 作为库的依赖被引入:Compose Runtime、Navigation 等库内部大量使用(例如 A2UI 的注册表也用
MutableScatterMap)。
明确不解决什么
- 不是标准库替换:读写频繁但规模小、冷路径上的普通
Map/List没有必要换。 - 不提供完整的
Collection接口语义:ScatterMap有自己的一套 API,需要适应。 - 不是线程安全容器:并发访问仍需外部同步。