Sammlung

  
Die Speichernutzung von vorhandenen und neuen kleinen Sammlungen wird reduziert.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
23. September 2026 1.6.0 1.7.0-rc01 - -

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Collection hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie unter Google-Repository bei Maven.

Fügen Sie die Abhängigkeiten für die benötigten Artefakte in der Datei build.gradle für Ihre App oder Ihr Modul hinzu:

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")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.7

Version 1.7.0-rc01

23. September 2026

androidx.collection:collection-*:1.7.0-rc01 ist veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.

Version 1.7.0-alpha01

9. September 2026

androidx.collection:collection-*:1.7.0-alpha01 ist veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.

API-Änderungen

  • Die Funktionen sortWith, sortBy und sortByDescending wurden MutableObjectList hinzugefügt, zusammen mit binarySearch-Algorithmen für ObjectList und primitiven Listenklassen (FloatList, IntList, LongList, DoubleList). Es wurden binarySearch-Überladungen mit genauen Komponententypen für FloatList, LongList und DoubleList sowie vorhandene Int-Methoden hinzugefügt. (Ied6f7)
  • androidx.benchmark hat jetzt einen minSdk von 24. (Ic2a85)
  • Leistung von ScatterMap.getOrPut() optimieren (I6e46b)
  • @JvmOverloads wurde zu den Trim-Funktionen der List-Klassen hinzugefügt (I24410, b/481371562)
  • Die Erweiterung .toOrderedScatterSet() wurde hinzugefügt. Dies ist eine schreibgeschützte Alternative zur veränderlichen Conversion-Funktion. Wenn die Quellsammlung leer ist, wird ein zuweisungsfreies Singleton zurückgegeben. (I1b767)

Fehlerkorrekturen

  • Verbessertes Hashing in ScatterMap und primitiven Sammlungen zur Reduzierung von Kollisionen für Float-Schlüssel. (I7d2ac, b/528428583)
  • Implementieren Sie toString() für den Schlüssel ScatterMap.asMap, den Wert und die Ansichten für Einträge. So erhalten Entwickler, die den asMap()-Wrapper verwenden, eine bessere Debugging-Sichtbarkeit. (I64791)

Version 1.6

Version 1.6.0

11. März 2026

androidx.collection:collection-*:1.6.0 ist veröffentlicht. Version 1.6.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.5.0:

  • Für MutableFloatList, MutableDoubleList und MutableIntList wurde eine Version von „trim“ ohne Argumente hinzugefügt.
  • Ergänzen Sie die Erweiterungsfunktionen toMutableOrderedScatterSet, toOrderedScatterSet, toMutableScatterMap, toScatterMap, toMutableScatterSet und toScatterSet.
  • Leistungsverbesserungen für ScatterMap und ScatterSet.
  • Die minSdk-Version ist jetzt 23.

Version 1.6.0-rc01

11. Februar 2026

androidx.collection:collection-*:1.6.0-rc01 ist veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.

Version 1.6.0-beta01

14. Januar 2026

androidx.collection:collection-*:1.6.0-beta01 ist veröffentlicht. Version 1.6.0-beta01 enthält diese Commits.

API-Änderungen

  • Die Erweiterungen .toScatterSet() und .toScatterMap() wurden hinzugefügt. Sie bieten eine schreibgeschützte Alternative zu den veränderlichen Conversion-Funktionen und geben zuweisungsfreie Singletons zurück, wenn die Quellsammlung leer ist. (I1769a, b/459867876)
  • Ersetzen Sie die Pseudokonstruktoren MutableScatterMap(source) und MutableScatterSet(source) durch die Standard-Erweiterungsfunktionen .toMutableScatterMap() und .toMutableScatterSet(). Dies entspricht den Kotlin-Konventionen für Sammlungsumwandlungen. (Ic9ca6, b/459867876)
  • Fügen Sie die Factory-Funktionen MutableScatterMap(Map) und MutableScatterSet(Set) hinzu. Mit diesen Funktionen können Sie ganz einfach eine Scatter-Sammlung erstellen, die bereits mit den Inhalten einer vorhandenen Sammlung gefüllt ist. (I51d70)

Fehlerkorrekturen

  • In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers) (I05181, b/326456246)

Version 1.6.0-alpha01

27. August 2025

androidx.collection:collection-*:1.6.0-alpha01 ist veröffentlicht. Version 1.6.0-alpha01 enthält diese Commits.

API-Änderungen

  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).

Fehlerkorrekturen

  • Bisher wurde von SparseArrayCompat für „valueAt“ null und für „get“ keyAt zurückgegeben, wenn ein Index übergeben wurde, der innerhalb des zugewiesenen Bereichs, aber außerhalb des eingefügten Bereichs 0..size -1 lag. Wie dokumentiert, war dieses Verhalten nie vorgesehen und lag außerhalb des gültigen Eingabebereichs. Durch diese Änderung wird das Verhalten korrigiert, sodass stattdessen IndexOutOfBounds ausgegeben wird, wenn ein ungültiger Index übergeben wird. (I68453)

Externer Beitrag

Vielen Dank an Jake Wharton für die folgenden Beiträge:

  • Richten Sie das joinToString-Verhalten an Plattformsammlungen aus, indem Sie beim Begrenzen der eingeschlossenen Elemente ein Trennzeichen vor und das Postfix nach dem Kürzungshinweis hinzufügen. (I1b7e8)
  • ScatterSet.hashCode schützt nicht mehr vor Rekursion (d.h., dass die Menge sich selbst hinzugefügt wird). Dadurch wird das Verhalten an ScatterMap, HashSet und die einfachen Scatter-basierten Sets (z. B. LongSet) angeglichen. Die Methode equals war bereits anfällig für Rekursion und toString schützt davor. Beide Verhaltensweisen stimmen mit den anderen Sammlungen überein. (I9c84a)
  • Die ScatterSet.retainAll-Funktion ist jetzt inline, um die Erstellung einer Lambda-Instanz zu vermeiden. (Ifa4b7)
  • ScatterSet.hashCode verwendet seine Kapazität nicht mehr bei der Hash-Berechnung. Inhalte, die gleich sind, aber unterschiedliche Kapazitäten haben, führen also zum selben Wert. (Ic863b)
  • IllegalStateException wird jetzt ausgelöst, wenn Sie remove() vor next() für einen Iterator der Sammlungen keys, values oder entries von ScatterMap.asMap() oder ScatterSet.asSet() aufrufen. Das Verhalten entspricht nun dem der regulären Karte und der Set-Funktion. (I71694)

Version 1.5

Version 1.5.0

12. März 2025

androidx.collection:collection-*:1.5.0 ist veröffentlicht. Version 1.5.0 enthält diese Commits.

Version 1.5.0-rc01

26. Februar 2025

androidx.collection:collection-*:1.5.0-rc01 ist veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.

Version 1.5.0-beta03

29. Januar 2025

androidx.collection:collection-*:1.5.0-beta03 ist veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.

Version 1.5.0-beta02

15. Januar 2025

androidx.collection:collection-*:1.5.0-beta02 ist veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.

Version 1.5.0-beta01

11. Dezember 2024

androidx.collection:collection-*:1.5.0-beta01 ist veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

API-Änderungen

  • Unterstützung für das watchosDeviceArm64-KMP-Ziel und Kotlin 1.9 als Ziel hinzugefügt (Icf15d, b/364652024)

Version 1.5.0-alpha06

13. November 2024

androidx.collection:collection-*:1.5.0-alpha06 ist veröffentlicht. Version 1.5.0-alpha06 enthält diese Commits.

Fehlerkorrekturen

  • Ein Absturz wurde behoben, der in SieveCache und OrderedScatterSet auftreten konnte, wenn zahlreiche Elemente hinzugefügt wurden, was zu wiederholten Schlüsselkollisionen führte. (Iaaf3d, b/375607736)
  • Fügen Sie der Sammlung der Bibliothek das WASM-Ziel hinzu. (I66fe3, b/352722444)

Version 1.5.0-alpha05

30. Oktober 2024

androidx.collection:collection-*:1.5.0-alpha05 ist veröffentlicht. Version 1.5.0-alpha05 enthält diese Commits.

Version 1.5.0-alpha04

16. Oktober 2024

androidx.collection:collection-*:1.5.0-alpha04 ist veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.

Version 1.5.0-alpha03

2. Oktober 2024

androidx.collection:collection-*:1.5.0-alpha03 ist veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.

API-Änderungen

  • Kotlin-Version auf 1.9 aktualisiert (I1a14c)

Externer Beitrag

  • Leite contains an containsKey weiter. Danke, Jake Wharton! (I9362b)
  • Container-Builder für skalar-spezialisierte Sammlungen hinzufügen Danke, Jake Wharton! (I13179)

Version 1.5.0-alpha02

18. September 2024

androidx.collection:collection-*:1.5.0-alpha02 ist veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.

API-Änderungen

  • Unterstützung für das watchosDeviceArm64-Plattformziel hinzugefügt. (I1cc04, b/364652024)

Version 1.5.0-alpha01

4. September 2024

androidx.collection:collection-*:1.5.0-alpha01 ist veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.

API-Änderungen

  • OrderedScatterSet ist eine neue geordnete, zuteilungsfreie Sammlung (Ic4178).
  • SieveCache ist ein neuer, zuweisungsfreier Ersatz für LruCache, der eine bessere Trefferquote bietet. (I50a17)
  • Die interne Darstellung von packedValue für IntIntPair und FloatFloatPair wurde verfügbar gemacht. (Ifeb75, b/331853566)
  • Zugriff auf das Inhaltsarray in Listensammlungen hinzugefügt. (I899d5, b/333903173)
  • Fügen Sie DoubleList hinzu, eine listenähnliche Datenstruktur, die für Double-Werte optimiert ist. (Ia10d1, b/315127635)

Fehlerkorrekturen

  • Die Collections-Bibliothek wird auf Kotlin 1.9 umgestellt (I0782f)
  • Viele Sammlungen wurden optimiert, um effizienter zu sein. (Ic0566)

Version 1.4

Version 1.4.5

30. Oktober 2024

androidx.collection:collection-*:1.4.5 ist veröffentlicht. Version 1.4.5 enthält diese Commits.

Version 1.4.4

18. September 2024

androidx.collection:collection-*:1.4.4 ist veröffentlicht. Version 1.4.4 enthält diese Commits.

Fehlerkorrekturen

  • Problemumgehung ArrayIndexOutOfBounds beim Sortieren einer leeren Sammlung. (I65245)

Version 1.4.3

7. August 2024

androidx.collection:collection-*:1.4.3 ist veröffentlicht. Version 1.4.3 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, der zu Beschädigungen in ScatterMap, ScatterSet und ihren primitiven Varianten führen konnte. (I38a4a, b/352560465)
  • Leistungsoptimierungen Das betrifft insbesondere Folgendes:
    • Ersetzen Sie Aufrufe von check() und required() durch Varianten, bei denen keine Inline-Ausnahmen ausgelöst werden. Dadurch wird die endgültige Binärgröße reduziert und vor allem die Belastung des I-Cache etwas verringert.
    • Verbesserte removeDeletedMarkers() in der Sammlung „scatter“. In der neuen Version werden jeweils 8 gelöschte Markierungen gleichzeitig entfernt und teurere Schreibvorgänge übersprungen. (Ic0566)

Version 1.4.2

24. Juli 2024

androidx.collection:collection-*:1.4.2 ist veröffentlicht. Version 1.4.2 enthält diese Commits.

Neue Funktionen

  • Enthält zusätzliche Kotlin Multiplatform-Ziele: watchos, tvos, linuxArm64. (b/352543988)

Version 1.4.1

10. Juli 2024

androidx.collection:collection-*:1.4.1 ist veröffentlicht. Version 1.4.1 enthält diese Commits.

Fehlerkorrekturen

  • Entfernen Sie gelöschte Tombstones aus der Karte/dem Set, wenn Sie die Größe ändern. (7a996c5, b/345960092)

Version 1.4.0

24. Januar 2024

androidx.collection:collection-*:1.4.0 ist veröffentlicht. Version 1.4.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.3.0

Es wurden neue hocheffiziente Sammlungen zum Speichern von Primitiven ohne Boxing hinzugefügt:

  • MutableScatterMap & ScatterMap – Klassen mit MutableMap und kartenähnlicher API
  • MutableScatterSet & ScatterSet – Klassen mit MutableSet- und Set-ähnlicher API
  • MutableObjectList & ObjectList – Klassen mit MutableList & listenähnlicher API

Eine Map mit einem Ganzzahlschlüssel und einem Referenztypwert ist beispielsweise eine IntObjectMap<T>. Eine Zuordnung mit einem langen Schlüssel und einem Gleitkommawert ist eine LongFloatMap. Es gibt keine Version mit dem Namen ObjectObjectMap, da diese von ScatterMap/MutableScatterMap abgedeckt wird.

Version 1.4.0-rc01

10. Januar 2024

androidx.collection:collection-*:1.4.0-rc01 wird ohne Änderungen veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Version 1.4.0-beta02

29. November 2023

androidx.collection:collection-*:1.4.0-beta02 ist veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.

Neue Funktionen

  • Verbesserte Leistung von FloatFloatPair. (If5537)

Fehlerkorrekturen

  • ScatterMap.asMap() Der Iterator gibt jetzt neue Instanzen zurück (I28932, b/310365754)

Version 1.4.0-beta01

15. November 2023

androidx.collection:collection-*:1.4.0-beta01 ist veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • Korrektur für ListIterator, wodurch Werte in ObjectList fälschlicherweise festgelegt wurden, was zu einem Absturz aufgrund von IndexOutOfBoundsException führen konnte. (I3bd8a, b/307049391)

Version 1.4.0-alpha02

18. Oktober 2023

androidx.collection:collection-*:1.4.0-alpha02 ist veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.

API-Änderungen

  • Es wurde eine Überladung für put hinzugefügt, die den vorherigen Wert zurückgibt, wenn er durch alle primitiven Sammlungen wie FloatFloatMap ersetzt wird.
  • Konvertieren Sie removeIf-Methoden für primitive Sammlungen wie MutableFloatFloatMap in Inline-Methoden. So wird sichergestellt, dass die Lambda-Funktion für removeIf nicht zugewiesen wird.

Version 1.4.0-alpha01

4. Oktober 2023

androidx.collection:collection-*:1.4.0-alpha01 ist veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.

Neue Funktionen

Es wurden neue hocheffiziente Sammlungen hinzugefügt, die einen geringen Zuweisungs-Overhead und eine hohe Leistung aufweisen:

  • MutableScatterMap & ScatterMap – Klassen mit MutableMap und kartenähnlicher API
  • MutableScatterSet & ScatterSet – Klassen mit MutableSet- und Set-ähnlicher API
  • MutableObjectList & ObjectList – Klassen mit MutableList & listenähnlicher API

Es wurden neue hocheffiziente Sammlungen zum Speichern von Primitiven ohne Boxing hinzugefügt:

  • Mutable[Int|Float|Long]List – Klassen mit einer API, die MutableList<Int|Float|Long> ähnelt. Es gibt auch die schreibgeschützte [Int|Float|Long]List. Ganzzahlen können beispielsweise in einem IntList gespeichert werden.
  • Mutable[Int|Float|Long]Set – Klassen mit einer API, die MutableSet<Int|Float|Long> ähnelt. Es gibt auch die schreibgeschützte Version [Int|Float|Long]Set. Ganzzahlen können beispielsweise in einem IntSet gespeichert werden.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map – Klassen mit einer API, die Mutable<Int|Float|Long,T, Int|Float|Long|T> ähnelt. Es gibt auch die schreibgeschützte Version [Int|Float|Long|Object][Int|Float|Long|Object]Map. Eine Map mit einem Ganzzahlschlüssel und einem Referenztypwert ist beispielsweise eine IntObjectMap<T>. Eine Karte mit einem langen Schlüssel und einem Gleitkommawert ist ein LongFloatMap. Es gibt keine Version mit dem Namen ObjectObjectMap, da diese von ScatterMap/MutableScatterMap abgedeckt wird.

Version 1.3.0

Version 1.3.0

4. Oktober 2023

androidx.collection:collection-*:1.3.0 ist veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • Sie können jetzt Collections in Kotlin Multiplatform-Projekten verwenden. Nicht-Android-Ziele von Sammlungen sind weiterhin experimentell. Wir haben uns jedoch entschieden, Versionen zusammenzuführen, um Entwicklern das Ausprobieren zu erleichtern.
  • Der gesamte Quellcode wurde zu Kotlin migriert. Im Rahmen dieser Änderung sind viele APIs jetzt korrekt für die Nullheit typisiert und einige paketprivate Elemente sind internal geworden. Eine Liste der genauen Änderungen finden Sie unten in den Versionshinweisen für die Nebenversion 1.3.x.
  • Im Zuge der Kotlin-Migration wurde collection-ktx mit dem Hauptsammlungsartefakt zusammengeführt. Sie können alle Abhängigkeiten von collection:collection-ktx zugunsten von collection:collection entfernen, da collection-ktx jetzt leer ist.

Version 1.3.0-rc01

6. September 2023

androidx.collection:collection-*:1.3.0-rc01 wird ohne Änderungen veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta01

9. August 2023

androidx.collection:collection-*:1.3.0-beta01 ist veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.

Version 1.3.0-alpha04

24. März 2023

androidx.collection:collection-*:1.3.0-alpha04 ist veröffentlicht.

Fehlerkorrekturen

  • Abhängigkeitsbeschränkungen wurden aus Maven-Artefakten entfernt, um ein Build-Problem in Kotlin Native Targets zu umgehen (b/274786186, KT-57531).

Version 1.3.0-alpha03

22. März 2023

androidx.collection:collection-*:1.3.0-alpha03 ist veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Sie können jetzt Sammlungen in KMM-Projekten verwenden. Nicht-Android-Ziele von Sammlungen sind weiterhin experimentell. Wir haben uns jedoch entschieden, Versionen zusammenzuführen, um Entwicklern das Ausprobieren zu erleichtern.

API-Änderungen

  • ArraySet verwendet jetzt MutableCollections anstelle von AbstractMutableCollection, um eine speichereffizientere Implementierung von toArray (I1ac32) zu ermöglichen.

Fehlerkorrekturen

  • ArraySet.toArray ist jetzt nur noch auf der JVM verfügbar, da es immer nur zur Kompatibilität mit Java enthalten war. Kotlin-Nutzer sollten stattdessen in der Regel die .toTypedArray-Helfer der Standardbibliothek verwenden, die genau dieselbe Funktionalität mit zusätzlicher Typsicherheit bieten. (I2c59b)

Version 1.3.0-alpha02

27. Juli 2022

androidx.collection:collection:1.3.0-alpha02 und androidx.collection:collection-ktx:1.3.0-alpha02 sind veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

API-Änderungen

  • SparseArrayCompat ist jetzt für Nicht-JVM-Plattformen über das gemeinsame Artefakt (Ic9bd0, b/219589118, b/228347315) verfügbar.
  • CircularIntArray ist jetzt für Nicht-JVM-Plattformen über das gemeinsame Artefakt verfügbar (I3d8ef, b/228344943).
  • LongSparseArray ist jetzt für Nicht-JVM-Plattformen über das gemeinsame Artefakt verfügbar (I73149, b/228347315).

Version 1.3.0-alpha01

29. Juni 2022

androidx.collection:collection:1.3.0-alpha01 und androidx.collection:collection-ktx:1.3.0-alpha01 sind veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.

Neue Funktionen

  • collection-ktx-Erweiterungen wurden in das Hauptartefakt für Sammlungen, androidx.collection:collection, migriert. Durch diese Änderung sind die vorhandenen -ktx-Erweiterungen für Kotlin-Nutzer zugänglich, ohne dass die -ktx-Abhängigkeit erforderlich ist. Gleichzeitig wird die Kompatibilität für bestehende Nutzer beibehalten. Es ist nicht mehr sinnvoll, diese Erweiterungen in einem separaten -ktx-Artefakt zu verwalten, da das Hauptartefakt zu Kotlin migriert wurde. (I6eef2)

API-Änderungen

  • ArraySet erweitert jetzt AbstractMutableCollection und implementiert nicht mehr direkt die Collection-Schnittstelle. (If6da0, b/230860589)
  • ArraySet wurde in Kotlin konvertiert. Aufgrund der strengeren Typisierung werden einige Kotlin-Aufrufe möglicherweise nicht mehr kompiliert. (Id68c1, b/230860589)
    • Die folgenden Aufrufe haben den Argumenttyp T, nicht T?:
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Die folgenden Aufrufe haben den Rückgabetyp T?, nicht T!:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Die folgenden Aufrufe sind in Kotlin nicht mehr möglich:
      • set.toArray() – set.toTypedArray() verwenden
      • set.toArray(array) – set.forEachIndexed(array::set) verwenden
  • Kombinieren Sie den überladenen Konstruktor für SparseArrayCompat als optionales Argument für Kotlin-Nutzer. (If8407, b/227474719)
  • Entfernen der Operatorsyntax für SparseArrayCompat.get(key, defaultValue).: Die Operatorsyntax für .get(key) ist weiterhin zulässig. Die API-Oberfläche von SparseArrayCompat wird jedoch besser an die anderen Klassen in dieser Bibliothek angepasst. (I9a38d)
  • Migrieren Sie LongSparseArray-Erweiterungen in das Hauptartefakt „androidx.collection:collection“. Durch diese Änderung sind die vorhandenen -ktx-Erweiterungen für Kotlin-Nutzer zugänglich, ohne dass die -ktx-Abhängigkeit erforderlich ist. Gleichzeitig wird die Kompatibilität für bestehende Nutzer beibehalten. Es ist nicht mehr sinnvoll, diese Erweiterungen in einem separaten -ktx-Artefakt zu verwalten, da das Hauptartefakt zu Kotlin migriert wurde. (I8659a)
  • Konvertiere LongSparseArray in Kotlin. Durch diese Änderung wird den Typen explizite Nullable-Eigenschaften hinzugefügt. Das ist eine binärkompatible Änderung, kann aber zu Inkompatibilitäten im Quellcode führen. Insbesondere: * Auf .isEmpty kann nicht mehr als Attribut zugegriffen werden. In Kotlin muss es als Funktionsaufruf aufgerufen werden: .isEmpty() (Idfd0f)
  • Konvertiere SimpleArrayMap in Kotlin. Diese Änderung führt einige inkompatible Änderungen ein, die auf die Java-Kotlin-Interoperabilität und die Möglichkeit zurückzuführen sind, die Nullable-Eigenschaft von Typen in der Quelle korrekt zu definieren.
    • Die paketprivaten APIs .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull() und .indexOfValue() wurden privat gemacht. Dies ist technisch gesehen eine binär inkompatible Änderung, spiegelt aber die beabsichtigte Sichtbarkeit dieser Felder wider und ist das, was wir in Kotlin am besten erreichen können, da es keine Möglichkeit gibt, die paketprivate Sichtbarkeit anzugeben.
    • Die Nullität einiger Typen ist jetzt richtig definiert. Die betroffenen Methoden sind: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • Für Kotlin-Nutzer ist .isEmpty() jetzt nur noch als Funktion verfügbar und nicht mehr über den Zugriff auf Eigenschaften. (I271b7, b/182813986)
  • Konvertiere CircularArray in Kotlin. Wichtige Änderungen:

    • Die Nullable-Eigenschaft der Generics wird auf „nicht null“ korrigiert. Das war zuvor nicht möglich zu deklarieren, wurde aber in allen öffentlichen APIs erzwungen.
    • Aufgrund der Java-Interop-Funktion von Kotlin war es bisher möglich, auf bestimmte Methoden sowohl als Eigenschaften als auch als Funktionen zuzugreifen. Um Duplikate zu vermeiden und gleichzeitig die binäre Kompatibilität beizubehalten, mussten diese jedoch entfernt werden. Das ist eine quellinkompatible Änderung. Die betroffenen Aufrufe sind .isEmpty, .getLast() und .getFirst(). (Ifffac)
  • Konvertiere CircularIntArray in Kotlin. Aufgrund der Java-Interop-Funktion von Kotlin war es bisher möglich, auf bestimmte Methoden sowohl als Eigenschaften als auch als Funktionen zuzugreifen. Um jedoch Duplikate zu vermeiden und gleichzeitig die binäre Kompatibilität aufrechtzuerhalten, mussten diese entfernt werden. Dies ist eine quellinkompatible Änderung. Die betroffenen Anrufe sind: .isEmpty, .getLast() und .getFirst(). (Ie36ce)

  • LruCache in Kotlin konvertieren (Ia2f19)

  • Konvertiere SparseArrayCompat in Kotlin. (If6fe8)

    SparseArrayCompat.valueAt() wurde eine kleine Verhaltensänderung hinzugefügt. Es wird nicht mehr fälschlicherweise null für nicht initialisierte Aufrufe außerhalb des Bereichs von size(), aber innerhalb der bereitgestellten anfänglichen Kapazität zurückgegeben.

    Mit dieser Änderung wird auch die richtige Nullable-Eigenschaft für einige Typen eingeführt, die zuvor gefehlt hat.

    • .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)

Version 1.2.0

Version 1.2.0

1. Dezember 2021

androidx.collection:collection:1.2.0 und androidx.collection:collection-ktx:1.2.0 sind veröffentlicht. Version 1.2.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.1.0

  • Fügen Sie ArraySet einen Array-Konstruktor hinzu. (Id7f19)
  • entrySet() API-konform machen, indem entrySet().toArray(), remove(), removeAll() und retainAll() implementiert und die Implementierung von entrySet().addAll() entfernt wird (I5d505)

Version 1.2.0-rc01

17. November 2021

androidx.collection:collection:1.2.0-rc01 und androidx.collection:collection-ktx:1.2.0-rc01 sind veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.

API-Änderungen

  • Keine Änderungen gegenüber der vorherigen Betaversion.

Version 1.2.0-beta01

13. Oktober 2021

androidx.collection:collection:1.2.0-beta01 und androidx.collection:collection-ktx:1.2.0-beta01 sind veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • entrySet() API-konform machen, indem entrySet().toArray(), remove(), removeAll() und retainAll() implementiert und die Implementierung von entrySet().addAll() entfernt wird (I5d505)

Version 1.2.0-alpha01

16. Dezember 2020

androidx.collection:collection:1.2.0-alpha01 und androidx.collection:collection-ktx:1.2.0-alpha01 sind veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.

API-Änderungen

  • Fügen Sie ArraySet einen Array-Konstruktor hinzu. (Id7f19)

Version 1.1.0

Version 1.1.0

5. Juni 2019

androidx.collection:collection:1.1.0 und androidx.collection:collection-ktx:1.1.0 sind veröffentlicht. Die in Version 1.1.0 enthaltenen Commits finden Sie hier.

Hier finden Sie eine Zusammenfassung der Änderungen von Version 1.0.0 zu Version 1.1.0:

Neue Funktionen

  • Effizientere Implementierung für die Funktionen contains und isNotEmpty im Artefakt „collection-ktx“. (aosp/866529)

API-Änderungen

  • putIfAbsent zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772608)
  • getOrDefault zu SimpleArrayMap hinzufügen (aosp/772607)
  • Fügen Sie das Argument remove zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzu. Die entsprechenden KTX-Erweiterungen für diese Funktion werden eingestellt. (aosp/772482)
  • Zwei Argumente für replace zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772483)
  • Fügen Sie das Argument replace mit drei Argumenten zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzu (aosp/772484).
  • Redundante delete-Methoden werden eingestellt. Die Methode remove bietet dieselbe API und Funktionalität wie die API, die von nicht spezialisierten Karten verwendet wird. (aosp/866053)

Diverse Fehlerkorrekturen

  • Ändern Sie SimpleArrayMap, um den internen globalen Cache von Arrays auf SimpleArrayMap.class anstelle von ArrayMap.class zu synchronisieren. So wird sichergestellt, dass ArrayMap von Tools zur Codekomprimierung entfernt werden kann, wenn Sie nur SimpleArrayMap verwenden. (aosp/934557)

Version 1.1.0-rc01

7. Mai 2019

androidx.collection:collection:1.1.0-rc01 und androidx.collection:collection-ktx:1.1.0-rc01 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

Neue Funktionen

  • Effizientere Implementierung für die Funktionen contains und isNotEmpty im Artefakt „collection-ktx“. (aosp/866529)

Version 1.1.0-beta01

3. April 2019

androidx.collection:collection:1.1.0-beta01 und androidx.collection:collection-ktx:1.1.0-beta01 sind veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.

API-Änderungen

  • Die Methode, deren @RestrictTo-Wert sich laut Versionshinweisen zu Alpha 03 geändert hat, wurde entfernt. Sie wurde von keiner AndroidX-Bibliothek verwendet (weder jetzt noch in der Vergangenheit) und bot keine Funktionalität, die in der öffentlichen API fehlte.

Diverse Fehlerkorrekturen

  • Ändern Sie SimpleArrayMap, um den internen globalen Cache von Arrays auf SimpleArrayMap.class anstelle von ArrayMap.class zu synchronisieren. So wird sichergestellt, dass ArrayMap durch Tools zur Codekomprimierung entfernt werden kann, wenn Sie nur SimpleArrayMap verwenden. (aosp/934557)

Version 1.1.0-alpha03

13. März 2019

androidx.collection:collection:1.0.0-alpha03 und androidx.collection:collection-ktx:1.0.0-alpha03 sind veröffentlicht. Hier finden Sie die vollständige Liste der Commits, die in dieser Version enthalten sind.

API-Änderungen

  • Eine Methode für ArraySet, die zuvor mit @RestrictTo(LIBRARY_GROUP) gekennzeichnet war, wurde in @RestrictTo(LIBRARY_GROUP_PREFIX) geändert. Dies dient zur Unterstützung der bisherigen Verwendung durch andere AndroidX-Bibliotheken, die sich jetzt in anderen Maven-Gruppen-IDs befinden. Diese Methode wird entweder öffentlich gemacht oder in Version 1.1.0-alpha04 entfernt, da andere AndroidX-Bibliotheken keine speziellen APIs erhalten sollten, die anderen Entwicklern nicht zur Verfügung stehen.

Version 1.1.0-alpha02

30. Januar 2019

androidx.collection:collection 1.1.0-alpha02 und androidx.collection:collection-ktx 1.1.0-alpha02 sind veröffentlicht.

API-Änderungen

  • Redundante delete-Methoden werden eingestellt. Die remove-Methoden bieten dieselbe API und Funktionalität wie die API, die von nicht spezialisierten Karten verwendet wird. (aosp/866053)

Version 1.1.0-alpha01

3. Dezember 2018

API-Änderungen

  • putIfAbsent zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772608)
  • getOrDefault zu SimpleArrayMap hinzufügen (aosp/772607)
  • Fügen Sie remove mit zwei Argumenten zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzu. Die entsprechenden KTX-Erweiterungen für diese Funktion werden eingestellt. (aosp/772482)
  • Zwei Argumente für replace zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772483)
  • Fügen Sie das Argument replace mit drei Argumenten zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzu (aosp/772484).