Collection

  
减少现有及新增小型集合的内存占用。
最新更新 稳定版本 版本候选版 (RC) Beta 版本 Alpha 版本
2026 年 3 月 11 日 1.6.0 - - -

声明依赖项

如需添加对 Collection 的依赖项,必须将 Google Maven 代码库添加到您的项目中。如需了解详情,请阅读 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中,为您需要的工件添加依赖项

Groovy

dependencies {
    def collection_version = "1.6.0"
    implementation "androidx.collection:collection:$collection_version"
}

Kotlin

dependencies {
    val collection_version = "1.6.0"
    implementation("androidx.collection:collection:$collection_version")
}

有关依赖项的详细信息,请参阅添加构建依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅 问题跟踪器文档

版本 1.6

版本 1.6.0

2026 年 3 月 11 日

androidx.collection:collection-*:1.6.0 已发布。版本 1.6.0 包含这些提交

自 1.5.0 以来的重要更改

  • MutableFloatListMutableDoubleListMutableIntList 添加了无参数版本的 trim。
  • 添加了 toMutableOrderedScatterSettoOrderedScatterSettoMutableScatterMaptoScatterMaptoMutableScatterSettoScatterSet 扩展函数。
  • 提高了 ScatterMapScatterSet 的性能。
  • minSdk 版本现在为 23。

版本 1.6.0-rc01

2026 年 2 月 11 日

androidx.collection:collection-*:1.6.0-rc01 已发布。版本 1.6.0-rc01 包含这些提交

版本 1.6.0-beta01

2026 年 1 月 14 日

androidx.collection:collection-*:1.6.0-beta01 已发布。版本 1.6.0-beta01 包含这些提交

API 变更

  • 添加了 .toScatterSet().toScatterMap() 扩展。这些扩展为可变转换函数提供了只读替代方案,并在源集合为空时返回零分配的单例。(I1769a, b/459867876)
  • MutableScatterMap(source)MutableScatterSet(source) 伪构造函数替换为标准的 .toMutableScatterMap().toMutableScatterSet() 扩展函数。这符合 Kotlin 的集合转换惯例。(Ic9ca6, b/459867876)
  • 添加了 MutableScatterMap(Map)MutableScatterSet(Set) 工厂函数。使用这些函数可以轻松创建一个预填充了现有集合内容的散列集合。(I51d70)

Bug 修复

  • 此库现在使用 JSpecify 可空性注解,这些注解是类型使用 (type-use) 级别的。Kotlin 开发人员应使用以下编译器参数来强制正确用法:-Xjspecify-annotations=strict(从 Kotlin 编译器 2.1.0 版开始,这是默认设置)。(I05181, b/326456246)

版本 1.6.0-alpha01

2025 年 8 月 27 日

androidx.collection:collection-*:1.6.0-alpha01 已发布。版本 1.6.0-alpha01 包含这些提交

API 变更

  • 使用 Kotlin 2.0 发布的项目需要 KGP 2.0.0 或更高版本才能使用 (Idb6b5)

Bug 修复

  • 此前,当传入的索引在分配范围内但超出插入范围 0..size -1 时,SparseArrayCompat 会为 valueAtkeyAt 返回 null。正如文档所述,这种行为从未被预见,且超出了有效输入范围。此更改修复了该行为,现在传入无效索引时将抛出 IndexOutOfBounds。(I68453)

外部贡献

感谢 Jake Wharton 提供的以下贡献

  • 使 joinToString 的行为与平台集合一致,即在限制包含元素并添加截断指示符时,在其前后分别添加分隔符和后缀。(I1b7e8)
  • ScatterSet.hashCode 不再防御递归(即集合被添加到自身)。这使其行为与 ScatterMapHashSet 以及基于散列的基本类型集合(例如 LongSet)保持一致。请注意,equals 方法已经容易受到递归影响,而 toString 则提供了防御机制——这两种行为均与其他集合保持一致。(I9c84a)
  • ScatterSet.retainAll 函数现在设为内联,以避免创建 Lambda 实例。(Ifa4b7)
  • ScatterSet.hashCode 不再在哈希计算中使用其容量,从而确保内容相同但容量不同的集合仍产生相同的哈希值。(Ic863b)
  • 如果在 ScatterMap.asMap()ScatterSet.asSet()keysvaluesentries 集合的迭代器上,在调用 next() 之前调用 remove(),现在会抛出 IllegalStateException。这使其行为与常规 Map 和 Set 行为保持一致。(I71694)

版本 1.5

版本 1.5.0

2025 年 3 月 12 日

androidx.collection:collection-*:1.5.0 已发布。版本 1.5.0 包含这些提交

版本 1.5.0-rc01

2025 年 2 月 26 日

androidx.collection:collection-*:1.5.0-rc01 已发布。版本 1.5.0-rc01 包含这些提交

版本 1.5.0-beta03

2025 年 1 月 29 日

androidx.collection:collection-*:1.5.0-beta03 已发布。版本 1.5.0-beta03 包含这些提交

版本 1.5.0-beta02

2025 年 1 月 15 日

androidx.collection:collection-*:1.5.0-beta02 已发布。版本 1.5.0-beta02 包含这些提交

版本 1.5.0-beta01

2024 年 12 月 11 日

androidx.collection:collection-*:1.5.0-beta01 已发布。版本 1.5.0-beta01 包含这些提交

API 变更

  • 添加了对 watchosDeviceArm64 KMP 目标的支持,并以 Kotlin 1.9 为目标版本。(Icf15d, b/364652024)

1.5.0-alpha06 版本

2024 年 11 月 13 日

androidx.collection:collection-*:1.5.0-alpha06 已发布。版本 1.5.0-alpha06 包含这些提交

Bug 修复

  • 修复了在添加大量项导致重复键冲突时,SieveCacheOrderedScatterSet 中可能发生的崩溃问题。(Iaaf3d, b/375607736)
  • 为 collection 库添加了 wasm 目标。(I66fe3, b/352722444)

版本 1.5.0-alpha05

2024 年 10 月 30 日

androidx.collection:collection-*:1.5.0-alpha05 已发布。版本 1.5.0-alpha05 包含这些提交

1.5.0-alpha04 版本

2024 年 10 月 16 日

androidx.collection:collection-*:1.5.0-alpha04 已发布。版本 1.5.0-alpha04 包含这些提交

版本 1.5.0-alpha03

2024 年 10 月 2 日

androidx.collection:collection-*:1.5.0-alpha03 已发布。版本 1.5.0-alpha03 包含这些提交

API 变更

  • Kotlin 版本更新至 1.9。(I1a14c)

外部贡献

  • contains 转发给 containsKey。感谢 Jake Wharton!(I9362b)
  • 为标量特化集合添加了容器构建器。感谢 Jake Wharton!(I13179)

版本 1.5.0-alpha02

2024 年 9 月 18 日

androidx.collection:collection-*:1.5.0-alpha02 已发布。版本 1.5.0-alpha02 包含这些提交

API 变更

版本 1.5.0-alpha01

2024 年 9 月 4 日

androidx.collection:collection-*:1.5.0-alpha01 已发布。版本 1.5.0-alpha01 包含这些提交

API 变更

  • OrderedScatterSet 是一种新型的有序、零分配集合。(Ic4178)
  • SieveCacheLruCache 的新型零分配替代品,提供了更好的命中率特性。(I50a17)
  • 公开了 IntIntPairFloatFloatPair 的内部表示 packedValue。(Ifeb75, b/331853566)
  • 添加了对列表集合中内容数组的访问。(I899d5, b/333903173)
  • 添加了 DoubleList,这是一种针对 Double 值优化的类 List 数据结构。(Ia10d1, b/315127635)

Bug 修复

  • Collections 库现在以 Kotlin 1.9 为目标版本。(I0782f)
  • 优化了许多集合以提高效率。(Ic0566)

版本 1.4

版本 1.4.5

2024 年 10 月 30 日

androidx.collection:collection-*:1.4.5 已发布。版本 1.4.5 包含这些提交

版本 1.4.4

2024 年 9 月 18 日

androidx.collection:collection-*:1.4.4 已发布。版本 1.4.4 包含这些提交

Bug 修复

  • 解决了对空集合进行排序时出现的 ArrayIndexOutOfBounds 问题。(I65245)

版本 1.4.3

2024 年 8 月 7 日

androidx.collection:collection-*:1.4.3 已发布。版本 1.4.3 包含这些提交

Bug 修复

  • 修复了 ScatterMapScatterSet 及其基本类型变体中可能发生的数据损坏问题。(I38a4a, b/352560465)
  • 性能优化。具体包括:
    • 将对 check()required() 的调用替换为不内联异常抛出的变体。这减小了最终生成的二进制文件大小,更重要的是略微缓解了指令缓存 (i-cache) 的压力。
    • 改进了“scatter”系列集合中的 removeDeletedMarkers()。新版本每次清除 8 个已删除标记,并在处理过程中跳过更昂贵的写入操作。(Ic0566)

版本 1.4.2

2024 年 7 月 24 日

androidx.collection:collection-*:1.4.2 已发布。版本 1.4.2 包含这些提交

新功能

  • 包含额外的 Kotlin Multiplatform 目标:watchostvoslinuxArm64。(b/352543988)

版本 1.4.1

2024 年 7 月 10 日

androidx.collection:collection-*:1.4.1 已发布。版本 1.4.1 包含这些提交

Bug 修复

  • 在调整大小时,从 Map/Set 中移除已删除的墓碑标记。(7a996c5, b/345960092)

版本 1.4.0

2024 年 1 月 24 日

androidx.collection:collection-*:1.4.0 已发布。版本 1.4.0 包含这些提交。

自 1.3.0 以来的重要变更

新增了高效集合,用于在不进行装箱的情况下存储基本类型数据。

  • MutableScatterMap & ScatterMap - 具有 MutableMap & 类 Map API 的类。
  • MutableScatterSet & ScatterSet - 具有 MutableSet & 类 Set API 的类。
  • MutableObjectList & ObjectList - 具有 MutableList & 类 List API 的类。

例如,具有整数键和引用类型值的 map 为 IntObjectMap<T>。具有长整型键和浮点型值的 map 为 LongFloatMap。由于 ScatterMap/MutableScatterMap 已经涵盖了相应功能,因此没有名为 ObjectObjectMap 的版本。

版本 1.4.0-rc01

2024 年 1 月 10 日

androidx.collection:collection-*:1.4.0-rc01 已发布,没有任何更改。版本 1.4.0-rc01 包含这些提交。

版本 1.4.0-beta02

2023 年 11 月 29 日

androidx.collection:collection-*:1.4.0-beta02 已发布。版本 1.4.0-beta02 包含这些提交。

新功能

  • 提高了 FloatFloatPair 的性能。(If5537)

Bug 修复

版本 1.4.0-beta01

2023 年 11 月 15 日

androidx.collection:collection-*:1.4.0-beta01 已发布。版本 1.4.0-beta01 包含这些提交。

Bug 修复

  • 修复了 ListIteratorObjectList 中错误设置值的问题,该问题可能因 IndexOutOfBoundsException 导致崩溃。(I3bd8a, b/307049391)

版本 1.4.0-alpha02

2023年10月18日

androidx.collection:collection-*:1.4.0-alpha02 已发布。版本 1.4.0-alpha02 包含这些提交。

API 变更

  • 为所有基本类型集合(例如 FloatFloatMap)添加了 put 的重载,该重载在值被替换时返回旧值。
  • 将基本类型集合(例如 MutableFloatFloatMap)中的 removeIf 方法转换为内联。这确保了不会为 removeIf 分配 Lambda。

版本 1.4.0-alpha01

2023年10月4日

androidx.collection:collection-*:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。

新功能

新增了分配开销低且性能卓越的高效集合。

  • MutableScatterMap & ScatterMap - 具有 MutableMap & 类 Map API 的类。
  • MutableScatterSet & ScatterSet - 具有 MutableSet & 类 Set API 的类。
  • MutableObjectList & ObjectList - 具有 MutableList & 类 List API 的类。

新增了高效集合,用于在不进行装箱的情况下存储基本类型数据。

  • Mutable[Int|Float|Long]List - 具有类似 MutableList<Int|Float|Long> API 的类。此外,还存在只读的 [Int|Float|Long]List。例如,整数可以存储在 IntList 中。
  • Mutable[Int|Float|Long]Set - 具有类似 MutableSet<Int|Float|Long> API 的类。此外,还存在只读的 [Int|Float|Long]Set。例如,整数可以存储在 IntSet 中。
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map - 具有类似 Mutable<Int|Float|Long,T, Int|Float|Long|T> API 的类。此外,还存在只读的 [Int|Float|Long|Object][Int|Float|Long|Object]Map。例如,具有整数键和引用类型值的 map 为 IntObjectMap<T>。具有长整型键和浮点型值的 map 为 LongFloatMap。由于 ScatterMap/MutableScatterMap 已经涵盖了相应功能,因此没有名为 ObjectObjectMap 的版本。

版本 1.3.0

版本 1.3.0

2023年10月4日

androidx.collection:collection-*:1.3.0 已发布。版本 1.3.0 包含这些提交。

自 1.2.0 以来的重要更改

  • 您现在可以在 Kotlin Multiplatform 项目中使用 Collections。请注意,Collections 的非 Android 目标目前仍处于实验阶段,但我们决定合并版本,以便开发人员更轻松地尝试。
  • 所有源码均已迁移至 Kotlin。作为此次更改的一部分,许多 API 现在已对可空性进行了适当的类型化,一些包私有成员已变为 internal。具体更改列表可在下方的 1.3.x 次要版本说明中找到。
  • 随着 Kotlin 的迁移,collection-ktx 已合并到主 collection 软件库中。您可以放心移除对 collection:collection-ktx 的所有依赖,改为使用 collection:collection,因为 collection-ktx 现已为空。

版本 1.3.0-rc01

2023年9月6日

androidx.collection:collection-*:1.3.0-rc01 已发布,没有任何更改。版本 1.3.0-rc01 包含这些提交。

版本 1.3.0-beta01

2023年8月9日

androidx.collection:collection-*:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。

版本 1.3.0-alpha04

2023年3月24日

androidx.collection:collection-*:1.3.0-alpha04 已发布。

Bug 修复

  • 从 Maven 构件中移除了依赖约束,以解决 Kotlin Native Targets 中的构建问题 (b/274786186, KT-57531)。

版本 1.3.0-alpha03

2023 年 3 月 22 日

androidx.collection:collection-*:1.3.0-alpha03 已发布。版本 1.3.0-alpha03 包含这些提交。

新功能

  • 您现在可以在 KMM 项目中使用 Collections。请注意,Collections 的非 Android 目标目前仍处于实验阶段,但我们决定合并版本,以便开发人员更轻松地尝试。

API 变更

  • ArraySet 现在实现了 MutableCollections 而非 AbstractMutableCollection,以便提供更节省内存的 toArray 实现。(I1ac32)

Bug 修复

  • ArraySet.toArray 现在仅在 JVM 上可用,因为它最初只是为了兼容 Java 而包含。Kotlin 用户通常应改用标准库中的 .toTypedArray 辅助函数,它能提供完全相同的功能且具有更强的类型安全性。(I2c59b)

版本 1.3.0-alpha02

2022 年 7 月 27 日

androidx.collection:collection:1.3.0-alpha02androidx.collection:collection-ktx:1.3.0-alpha02 已发布。版本 1.3.0-alpha02 包含这些提交。

API 变更

版本 1.3.0-alpha01

2022 年 6 月 29 日

androidx.collection:collection:1.3.0-alpha01androidx.collection:collection-ktx:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交。

新功能

  • collection-ktx 扩展已迁移到主 collection 构件 androidx.collection:collection 中。通过此项更改,Kotlin 用户无需添加 -ktx 依赖项即可使用现有的 -ktx 扩展,同时还维持了对现有用户的兼容性。由于主构件已移至 Kotlin,因此在单独的 -ktx 构件中维护这些扩展已不再有益。(I6eef2)

API 变更

  • ArraySet 现在继承自 AbstractMutableCollection,不再直接实现 Collection 接口。(If6da0, b/230860589)
  • ArraySet 转换为 Kotlin。由于更严格的类型化,某些 Kotlin 调用可能无法再编译。(Id68c1, b/230860589)
    • 以下调用的参数类型为 T,而非 T?
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • 以下调用的返回类型为 T?,而非 T!
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • 在 Kotlin 中不再支持以下调用
      • set.toArray() - 使用 set.toTypedArray()
      • set.toArray(array) - 使用 set.forEachIndexed(array::set)
  • SparseArrayCompat 的重载构造函数合并为面向 Kotlin 用户的可选参数。(If8407, b/227474719)
  • 移除了 SparseArrayCompat.get(key, defaultValue) 的运算符语法。请注意,这仍允许 .get(key) 的运算符语法,但能使 SparseArrayCompat 的 API 范围与库中的其他类更好地保持一致。(I9a38d)
  • LongSparseArray 扩展迁移到主构件 androidx.collection:collection 中。通过此项更改,Kotlin 用户无需添加 -ktx 依赖项即可使用现有的 -ktx 扩展,同时还维持了对现有用户的兼容性。由于主构件已移至 Kotlin,因此在单独的 -ktx 构件中维护这些扩展已不再有益。(I8659a)
  • LongSparseArray 转换为 Kotlin。此更改为其类型添加了显式可空性,这在二进制层面是兼容的,但可能会导致源码不兼容。特别是:* .isEmpty 不再作为属性访问,在 Kotlin 中必须作为函数调用来访问 - .isEmpty()。(Idfd0f)
  • SimpleArrayMap 转换为 Kotlin。此项迁移导致了几项不兼容的更改,这是由于 Java-Kotlin 互操作性以及在源代码中正确定义类型可空性的需要所致。
    • 包私有 API:.mSize.mArray.mHashes.indexOf().indexOfNull().indexOfValue() 已设为私有。从技术上讲,这是一项二进制不兼容的更改,但反映了这些字段的预期可见性,并且是我们在 Kotlin 中能实现的最接近效果(因为 Kotlin 不包含指定包私有可见性的方法)。
    • 现在已正确定义了某些类型的可空性,受影响的方法包括:.getOrDefault.keyAt.valueAt.setValueAt.put.putIfAbsent.removeAt.replace
    • 对于 Kotlin 用户,.isEmpty() 现在仅作为函数提供,而不再支持通过属性访问。(I271b7, b/182813986)
  • CircularArray 转换为 Kotlin。显著更改:

    • 将其泛型的可空性更正为“非空”,此前无法声明,但在其所有公共 API 中均已强制执行。
    • 由于 Kotlin 的 Java 互操作性,此前可以将某些方法作为属性或函数来访问。但是,为了在保持二进制兼容性的同时减少冗余,必须移除这些方法,这是一项源码不兼容的更改。受影响的调用包括:.isEmpty.getLast().getFirst()。(Ifffac)
  • CircularIntArray 转换为 Kotlin。由于 Kotlin 的 Java 互操作性,此前可以将某些方法作为属性或函数来访问。但是,为了在保持二进制兼容性的同时减少冗余,必须移除这些方法,这是一项源码不兼容的更改。受影响的调用包括:.isEmpty.getLast().getFirst()。(Ie36ce)

  • LruCache 转换为 Kotlin。(Ia2f19)

  • SparseArrayCompat 转换为 Kotlin。(If6fe8)

    SparseArrayCompat.valueAt() 添加了一项小的行为变更:对于在 size() 范围之外但在提供的初始容量之内的未初始化调用,不再错误地返回 null

    此项更改还为之前缺失的一些类型引入了正确的空值性。

    • .get(): E? -> .get(): E
    • .replace(Int, Int?): Int? -> .replace(Int, Int): Int?
    • .replace(Int, Int?, Int?): Boolean -> .replace(Int, Int, Int): Boolean
    • .put(Int, Int?) -> .put(Int, Int)
    • .putIfAbsent(Int, Int?): Int? -> .putIfAbsent(Int, Int): Int?
    • .setValueAt(index: Int, value: Int?) -> .setValueAt(index: Int, value: Int)
    • .indexOfValue(value: Int?): Int -> .indexOfValue(value: Int): Int
    • .containsValue(value: Int?): Boolean -> .containsValue(value: Int): Boolean
    • .append(key: Int, value: Int?) -> .append(key: Int, value: Int)

版本 1.2.0

版本 1.2.0

2021 年 12 月 1 日

androidx.collection:collection:1.2.0androidx.collection:collection-ktx:1.2.0 已发布。版本 1.2.0 包含这些提交。

自 1.1.0 以来的重要更改

  • ArraySet 添加了一个数组构造函数。(Id7f19)
  • 通过实现 entrySet().toArray()remove()removeAll()retainAll(),并移除 entrySet().addAll() 的实现,使 entrySet() 符合 API 规范。(I5d505)

版本 1.2.0-rc01

2021 年 11 月 17 日

androidx.collection:collection:1.2.0-rc01androidx.collection:collection-ktx:1.2.0-rc01 已发布。版本 1.2.0-rc01 包含这些提交。

API 变更

  • 与之前的 beta 版本相比没有变化。

版本 1.2.0-beta01

2021 年 10 月 13 日

androidx.collection:collection:1.2.0-beta01androidx.collection:collection-ktx:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含这些提交。

Bug 修复

  • 通过实现 entrySet().toArray()remove()removeAll()retainAll(),并移除 entrySet().addAll() 的实现,使 entrySet() 符合 API 规范。(I5d505)

版本 1.2.0-alpha01

2020 年 12 月 16 日

androidx.collection:collection:1.2.0-alpha01androidx.collection:collection-ktx:1.2.0-alpha01 已发布。版本 1.2.0-alpha01 包含这些提交。

API 变更

  • ArraySet 添加了一个数组构造函数。(Id7f19)

版本 1.1.0

版本 1.1.0

2019 年 6 月 5 日

androidx.collection:collection:1.1.0androidx.collection:collection-ktx:1.1.0 已发布。1.1.0 包含的提交可以点击此处查看。

以下是从 1.0.0 到 1.1.0 的更改摘要

新功能

  • 在 'collection-ktx' 构件中,为 containsisNotEmpty 函数使用了更高效的实现。(aosp/866529)

API 变更

  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了 putIfAbsent。(aosp/772608)
  • SimpleArrayMap 添加了 getOrDefault。(aosp/772607)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了双参数版本的 remove。弃用了实现此功能的相应 KTX 扩展。(aosp/772482)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了双参数版本的 replace。(aosp/772483)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了三参数版本的 replace。(aosp/772484)
  • 弃用了冗余的 delete 方法。remove 方法提供相同的 API 和功能,且与非专用 Map 使用的 API 匹配。(aosp/866053)

Bug 修复

  • SimpleArrayMap 更改为在 SimpleArrayMap.class 而非 ArrayMap.class 上同步其内部全局数组缓存。这可以确保在只使用 SimpleArrayMap 时,代码缩减工具可以移除 ArrayMap。(aosp/934557)

版本 1.1.0-rc01

2019 年 5 月 7 日

androidx.collection:collection:1.1.0-rc01androidx.collection:collection-ktx:1.1.0-rc01 已发布。此版本包含的提交内容可以点击此处查看。

新功能

  • 在 'collection-ktx' 构件中,为 containsisNotEmpty 函数使用了更高效的实现。(aosp/866529)

版本 1.1.0-beta01

2019 年 4 月 3 日

androidx.collection:collection:1.1.0-beta01androidx.collection:collection-ktx:1.1.0-beta01 已发布。此版本包含的提交内容可以点击此处查看。

API 变更

  • alpha03 版本说明中提到的 @RestrictTo 值已更改的方法已被移除。该方法从未被任何 AndroidX 库使用(不论现在还是过去),且未提供公共 API 中缺失的任何功能。

Bug 修复

  • SimpleArrayMap 更改为在 SimpleArrayMap.class 而非 ArrayMap.class 上同步其内部全局数组缓存。这可以确保在只使用 SimpleArrayMap 时,代码缩减工具可以移除 ArrayMap。(aosp/934557)

版本 1.1.0-alpha03

2019 年 3 月 13 日

androidx.collection:collection:1.0.0-alpha03androidx.collection:collection-ktx:1.0.0-alpha03 已发布。此版本包含的完整提交列表可以点击此处查看。

API 变更

  • ArraySet 上一个之前被标记为 @RestrictTo(LIBRARY_GROUP) 的方法被改为 @RestrictTo(LIBRARY_GROUP_PREFIX)。这是为了支持其他现处于不同 Maven 组 ID 下的 AndroidX 库的历史用法。该方法将在 1.1.0-alpha04 中设为公开或移除,因为其他 AndroidX 库不应获得普通开发人员无法获得的特殊 API。

版本 1.1.0-alpha02

2019 年 1 月 30 日

androidx.collection:collection 1.1.0-alpha02androidx.collection:collection-ktx 1.1.0-alpha02 已发布。

API 变更

  • 弃用了冗余的 delete 方法。remove 方法提供相同的 API 和功能,且与非专用 Map 使用的 API 匹配。(aosp/866053)

版本 1.1.0-alpha01

2018 年 12 月 3 日

API 变更

  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了 putIfAbsent。(aosp/772608)
  • SimpleArrayMap 添加了 getOrDefault。(aosp/772607)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了双参数版本的 remove。弃用了实现此功能的相应 KTX 扩展。(aosp/772482)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了双参数版本的 replace。(aosp/772483)
  • LongSparseArraySimpleArrayMapSparseArrayCompat 添加了三参数版本的 replace。(aosp/772484)