Sammlung

  
Speicherbedarf von kleinen bestehenden und neuen Sammlungen reduzieren
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
9. September 2026 1.6.0 - - 1.7.0-alpha01

Abhängigkeiten deklarieren

Für eine Abhängigkeit von Collection musst du deinem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie die Abhängigkeiten für die benötigten Artefakte 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-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

  • sortWith-, sortBy- und sortByDescending-Funktionen wurden MutableObjectList hinzugefügt, zusammen mit binarySearch-Algorithmen für ObjectList und primitiven Listenklassen (FloatList, IntList, LongList, DoubleList). binarySearch-Überladungen mit genauen Komponententypen für FloatList, LongList und DoubleList wurden zusammen mit vorhandenen 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 von 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 der 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.
  • Fügen Sie die Erweiterungsfunktionen toMutableOrderedScatterSet, toOrderedScatterSet, toMutableScatterMap, toScatterMap, toMutableScatterSet, toScatterSet hinzu.
  • 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(). Das entspricht den Kotlin-Konventionen für die Konvertierung von Sammlungen. (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 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 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. dem Hinzufügen der Menge zu sich selbst). Dadurch wird das Verhalten an ScatterMap, HashSet und die primitiven 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 wird nicht mehr für die Hash-Berechnung verwendet. Inhalte mit unterschiedlichen Kapazitäten, aber gleichem Inhalt führen also zum selben Wert. (Ic863b)
  • IllegalStateException wird jetzt ausgelöst, wenn Sie remove() vor next() für einen Iterator der keys-, values- oder entries-Sammlungen von ScatterMap.asMap() oder ScatterSet.asSet() aufrufen. Das Verhalten entspricht nun dem der regulären Map und Set. (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

  • Aktualisierung der Kotlin-Version auf 1.9 (I1a14c)

Externer Beitrag

  • Leite contains an containsKey weiter. Vielen Dank, Jake Wharton! (I9362b)
  • Container-Builder für skalar-spezialisierte Sammlungen hinzufügen. Vielen Dank, 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 bessere Trefferquoten 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 Sammlungsgruppe „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 Map/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 & kartenähnlicher API
  • MutableScatterSet & ScatterSet – Klassen mit MutableSet & Set-ähnlicher API
  • MutableObjectList & ObjectList – Klassen mit MutableList und listenähnlicher API

Eine Zuordnung mit einem Ganzzahlschlüssel und einem Referenztypwert ist beispielsweise ein 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

  • Der ScatterMap.asMap()-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.
  • Konvertiert 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 mit geringem Zuweisungsaufwand und hoher Leistung hinzugefügt:

  • MutableScatterMap & ScatterMap – Klassen mit MutableMap & kartenähnlicher API
  • MutableScatterSet & ScatterSet – Klassen mit MutableSet & Set-ähnlicher API
  • MutableObjectList & ObjectList – Klassen mit MutableList und 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 [Int|Float|Long]Set. In einem IntSet können beispielsweise Ganzzahlen 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 [Int|Float|Long|Object][Int|Float|Long|Object]Map. Eine Zuordnung mit einem Ganzzahlschlüssel und einem Referenztypwert ist beispielsweise ein 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.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. Hinweis: 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 sicher 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

  • Es wurden Abhängigkeitsbeschränkungen 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 pflegen, 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 so 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 pflegen, 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-Interop-Funktion 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 die beste Lösung, die wir in Kotlin erreichen können, da es keine Möglichkeit gibt, die paketprivate Sichtbarkeit anzugeben.
    • Die Nullwerte einiger Typen sind 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 Properties als auch als Funktionen zuzugreifen. Um jedoch Duplikate zu vermeiden und gleichzeitig die binäre Kompatibilität beizubehalten, mussten diese entfernt werden. Dies 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 geringfügig geändert. Es wird nicht mehr fälschlicherweise null für nicht initialisierte Aufrufe außerhalb des Bereichs von size(), aber innerhalb der angegebenen anfänglichen Kapazität zurückgegeben.

    Durch diese Änderung wird auch die korrekte Nullheit für einige Typen eingeführt, die zuvor fehlte.

    • .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 Sie entrySet().toArray(), remove(), removeAll() und retainAll() implementieren und die Implementierung von entrySet().addAll() (I5d505) entfernen.

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 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 in LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772483)
  • replace mit drei Argumenten zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772484)
  • Veraltete delete-Methoden werden eingestellt. Die remove-Methode 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 für Alpha 03 geändert hat, wurde entfernt. Sie wurde von keiner AndroidX-Bibliothek verwendet (weder jetzt noch in der Vergangenheit) und bot keine Funktionen, die in der öffentlichen API fehlten.

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-alpha03

13. März 2019

androidx.collection:collection:1.0.0-alpha03 und androidx.collection:collection-ktx:1.0.0-alpha03 sind veröffentlicht. Eine vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.

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

  • Veraltete 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 das Argument 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 in LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772483)
  • replace mit drei Argumenten zu LongSparseArray, SimpleArrayMap und SparseArrayCompat hinzufügen (aosp/772484)