Collection:高效数据结构 · AndroidX 源码指南
AAndroidX 源码指南
基础工具
基础工具 · androidx.collection

Collection:高效数据结构Collection 1.7.0-alpha01

ScatterMap、ObjectList 与专用类型集合在什么场景值得直接用。

最后更新 2026-07-31

val map = mutableScatterMapOf("a" to 1, "b" to 2)

androidx.collection 提供不依赖标准库集合的高效数据结构。源码按元素类型拆分(IntListLongListFloatSetIntObjectMap 等),避免装箱开销;ScatterMap/ScatterSet 是无装箱的散列容器。

什么时候值得用

  • 热点路径:每帧或每次重组都要创建/遍历的小型容器,装箱与分配会成为 GC 压力来源。
  • 多平台:commonMain 实现,在 Compose 与 Kotlin Multiplatform 中通用。
  • 作为库的依赖被引入:Compose Runtime、Navigation 等库内部大量使用(例如 A2UI 的注册表也用 MutableScatterMap)。

明确不解决什么

  • 不是标准库替换:读写频繁但规模小、冷路径上的普通 Map/List 没有必要换。
  • 不提供完整的 Collection 接口语义:ScatterMap 有自己的一套 API,需要适应。
  • 不是线程安全容器:并发访问仍需外部同步。