Sammlung
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
10. Juli 2024 | 1.4.1 | - | - | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von einer Sammlung hinzufügen möchten, müssen Sie Ihrem Projekt das Maven-Repository von Google hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen:
Groovig
dependencies { def collection_version = "1.4.1" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.4.1" implementation("androidx.collection:collection:$collection_version") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder Verbesserungsvorschläge für diese Bibliothek haben. Bitte sieh dir die vorhandenen Probleme in dieser Bibliothek an, bevor du eine neue erstellst. Sie können einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Version 1.4
Version 1.4.1
10. Juli 2024
androidx.collection:collection-*:1.4.1
wurde veröffentlicht. Version 1.4.1 enthält diese Commits.
Fehlerkorrekturen
- Beim Anpassen der Größe werden gelöschte Tombstones aus Map/Set entfernt. (7a996c5, b/345960092)
Version 1.4.0
24. Januar 2024
androidx.collection:collection-*:1.4.0
wurde 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 Boxen hinzugefügt:
MutableScatterMap
undScatterMap
– Klassen mitMutableMap
und einer kartenähnlichen APIMutableScatterSet
undScatterSet
– Klassen mitMutableSet
und einer set-ähnlichen APIMutableObjectList
undObjectList
– Klassen mitMutableList
und einer listähnlichen 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 ein 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
wurde ohne Änderungen freigegeben. Version 1.4.0-rc01 enthält diese Commits.
Version 1.4.0-beta02
29. November 2023
androidx.collection:collection-*:1.4.0-beta02
wurde veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
Neue Funktionen
- Die Leistung von
FloatFloatPair
wurde verbessert. (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
wurde veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem
ListIterator
falsche Werte inObjectList
festlegte, die aufgrund vonIndexOutOfBoundsException
zu einem Absturz führen konnten. (I3bd8a, b/307049391)
Version 1.4.0-alpha02
18. Oktober 2023
androidx.collection:collection-*:1.4.0-alpha02
wurde veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
API-Änderungen
- Zusätzliche Überlastung für
put
, die den vorherigen Wert zurückgibt, wenn er durch alle primitiven Sammlungen ersetzt wird, z. B.FloatFloatMap
. - Konvertieren Sie
removeIf
-Methoden für primitive Sammlungen wieMutableFloatFloatMap
in Inline. Dadurch wird sichergestellt, dass das Lambda fürremoveIf
nicht zugeordnet wird.
Version 1.4.0-alpha01
4. Oktober 2023
androidx.collection:collection-*:1.4.0-alpha01
wurde veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
Neue Funktionen
Es wurden neue Sammlungen mit hoher Effizienz mit geringem Zuweisungsaufwand und hoher Leistung hinzugefügt:
MutableScatterMap
undScatterMap
– Klassen mitMutableMap
und einer kartenähnlichen APIMutableScatterSet
undScatterSet
– Klassen mitMutableSet
und einer set-ähnlichen APIMutableObjectList
undObjectList
– Klassen mitMutableList
und einer listähnlichen API
Es wurden neue hocheffiziente Sammlungen zum Speichern von Primitiven ohne Boxen hinzugefügt:
Mutable[Int|Float|Long]List
: Klassen mit einerMutableList<Int|Float|Long>
-ähnlichen API. Die schreibgeschützte Datei[Int|Float|Long]List
ist ebenfalls vorhanden. Ganzzahlen können beispielsweise in einemIntList
enthalten sein.Mutable[Int|Float|Long]Set
: Klassen mit einerMutableSet<Int|Float|Long>
-ähnlichen API. Die schreibgeschützte Datei[Int|Float|Long]Set
ist ebenfalls vorhanden. Ganzzahlen können beispielsweise in einem IntSet enthalten sein.Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map
: Klassen mit einerMutable<Int|Float|Long,T, Int|Float|Long|T>
-ähnlichen API. Die schreibgeschützte Datei[Int|Float|Long|Object][Int|Float|Long|Object]Map
ist ebenfalls vorhanden. Eine Zuordnung mit einem Ganzzahlschlüssel und einem Referenztypwert ist beispielsweise einIntObjectMap<T>
. Eine Zuordnung mit einem langen Schlüssel und einem Gleitkommawert ist einLongFloatMap
. Es gibt keine Version mit dem NamenObjectObjectMap
, da diese vonScatterMap/MutableScatterMap
abgedeckt wird.
Version 1.3.0
Version 1.3.0
4. Oktober 2023
androidx.collection:collection-*:1.3.0
wurde veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Sie können jetzt Sammlungen in Kotlin Multiplatform-Projekten verwenden. Die Ziele von Sammlungen, die sich nicht auf Android beziehen, befinden sich noch in der Testphase. Wir haben jedoch beschlossen, Versionen zusammenzuführen, damit Entwickler sie einfacher ausprobieren können.
- Die gesamte Quelle wurde zu Kotlin migriert. Im Rahmen dieser Änderung werden viele APIs jetzt korrekt für Nullwerte eingegeben und einige private Paketmitglieder wurden zu
internal
. Eine Liste der genauen Änderungen finden Sie in den Nebenversionshinweise für 1.3.x unten. - Im Zuge der Kotlin-Migration wurde
collection-ktx
mit dem Hauptsammlungsartefakt zusammengeführt. Sie können alle Abhängigkeiten voncollection:collection-ktx
zugunsten voncollection:collection
verwerfen, dacollection-ktx
jetzt leer ist.
Version 1.3.0-rc01
6. September 2023
androidx.collection:collection-*:1.3.0-rc01
wurde ohne Änderungen freigegeben. Version 1.3.0-rc01 enthält diese Commits.
Version 1.3.0-beta01
9. August 2023
androidx.collection:collection-*:1.3.0-beta01
wurde 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
wurde veröffentlicht.
Fehlerkorrekturen
- Abhängigkeitseinschränkungen aus Maven-Artefakten wurden entfernt, um ein Build-Problem in nativen Kotlin-Zielen zu umgehen (b/274786186, KT-57531).
Version 1.3.0-alpha03
22. März 2023
androidx.collection:collection-*:1.3.0-alpha03
wurde veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
Neue Funktionen
- Sie können jetzt Sammlungen in KMM-Projekten verwenden. Die Ziele von Sammlungen, die sich nicht auf Android beziehen, befinden sich noch in der Testphase. Wir haben jedoch beschlossen, Versionen zusammenzuführen, damit Entwickler sie einfacher ausprobieren können.
API-Änderungen
ArraySet
implementiert jetztMutableCollections
anstelle vonAbstractMutableCollection
, um eine speichereffizientere Implementierung vontoArray
(I1ac32) zu ermöglichen
Fehlerkorrekturen
ArraySet.toArray
ist jetzt nur noch in JVM verfügbar, da es immer nur aus Gründen der Kompatibilität mit Java enthalten war. Kotlin-Nutzer sollten in der Regel stattdessen die.toTypedArray
-Hilfsprogramme von stdlib verwenden, die genau die gleichen Funktionen 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
wurden veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
API-Änderungen
SparseArrayCompat
ist jetzt für Nicht-JVM-Plattformen aus dem gemeinsamen Artefakt verfügbar (Ic9bd0, b/219589118, b/228347315).CircularIntArray
ist jetzt für Nicht-JVM-Plattformen aus dem gemeinsamen Artefakt (I3d8ef, b/228344943) verfügbar.LongSparseArray
ist jetzt für Nicht-JVM-Plattformen aus dem gemeinsamen Artefakt (I73149, b/228347315) verfügbar.
Version 1.3.0-alpha01
29. Juni 2022
androidx.collection:collection:1.3.0-alpha01
und androidx.collection:collection-ktx:1.3.0-alpha01
wurden veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
collection-ktx
Erweiterungen wurden zum Hauptsammlungsartefaktandroidx.collection:collection
migriert. Durch diese Änderung werden die bereits vorhandenen -ktx-Erweiterungen für Kotlin-Nutzer zugänglich, ohne dass die -ktx-Abhängigkeit erforderlich ist. Die Kompatibilität für bestehende Nutzer bleibt dabei erhalten. Es ist nicht mehr von Vorteil, diese Erweiterungen in einem separaten -ktx-Artefakt zu verwalten, da das Hauptartefakt nach Kotlin verschoben wurde. (I6eef2)
API-Änderungen
ArraySet
erweitert jetztAbstractMutableCollection
und implementiert die Schnittstelle „Collection“ nicht mehr direkt. (If6da0, b/230860589)ArraySet
wurde in Kotlin konvertiert. Aufgrund strengerer Eingaben können einige Kotlin-Aufrufe nicht mehr kompiliert werden. (Id68c1, b/230860589)- Die folgenden Aufrufe haben den Argumenttyp
T
, nichtT?
:ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- Die folgenden Aufrufe haben den Rückgabetyp
T?
, nichtT!
:ArraySet<T?>.valueAt(n)
ArraySet<T?>.removeAt(n)
ArraySet<T?>().iterator().next()
- Die folgenden Aufrufe sind über Kotlin nicht mehr möglich:
set.toArray()
–set.toTypedArray()
verwendenset.toArray(array)
–set.forEachIndexed(array::set)
verwenden
- Die folgenden Aufrufe haben den Argumenttyp
- Kombinieren Sie den überlasteten Konstruktor für
SparseArrayCompat
als optionales Argument für Kotlin-Nutzer. (If8407, b/227474719) - Entfernen Sie die Operatorsyntax für
SparseArrayCompat.get(key, defaultValue).
. Beachten Sie, dass dadurch weiterhin die Operatorsyntax für.get(key)
zulässig ist, die API-Oberfläche vonSparseArrayCompat
jedoch besser auf die anderen Klassen in dieser Bibliothek abgestimmt ist. (I9a38d) - Migrieren Sie
LongSparseArray
-Erweiterungen in das Hauptartefakt „androidx.collection:collection“. Durch diese Änderung werden die bereits vorhandenen -ktx-Erweiterungen für Kotlin-Nutzer zugänglich, ohne dass die -ktx-Abhängigkeit erforderlich ist. Die Kompatibilität für bestehende Nutzer bleibt dabei erhalten. Es ist nicht mehr von Vorteil, diese Erweiterungen in einem separaten -ktx-Artefakt zu verwalten, da das Hauptartefakt nach Kotlin verschoben wurde. (I8659a) - Konvertieren Sie
LongSparseArray
in Kotlin. Diese Änderung fügt ihren Typen explizite Nullwerte hinzu, was eine mit Binärprogrammen kompatible Änderung ist, aber zu Inkompatibilitäten der Quelle führen kann. Insbesondere gilt: *.isEmpty
ist nicht mehr als Property verfügbar, sondern muss als Funktionsaufruf in Kotlin –.isEmpty()
(Idfd0f) aufgerufen werden. - Konvertieren Sie
SimpleArrayMap
in Kotlin. Diese Änderung bringt einige inkompatible Änderungen mit sich als Ergebnis der Java-Kotlin-Interoperabilität und der Möglichkeit, die Nullwerte von Typen in der Quelle korrekt zu definieren.- Die privaten Paket-APIs
.mSize
,.mArray
,.mHashes
,.indexOf()
,.indexOfNull()
und.indexOfValue()
wurden als privat gekennzeichnet. Das ist eigentlich eine nicht mit Binärprogrammen kompatible Änderung, spiegelt jedoch die beabsichtigte Sichtbarkeit dieser Felder wider und ist in Kotlin am besten, da sie keine Möglichkeit zur Festlegung der Sichtbarkeit von Paketen bietet. - Die Nullwerte einiger Typen sind jetzt korrekt definiert. Die betroffenen Methoden sind:
.getOrDefault
,.keyAt
,.valueAt
,.setValueAt
,.put
,.putIfAbsent
,.removeAt
und.replace
. - Für Kotlin-Nutzer ist
.isEmpty()
jetzt nur als Funktion und nicht mehr auch über Property-Zugriff verfügbar. (I271b7, b/182813986)
- Die privaten Paket-APIs
Konvertieren Sie
CircularArray
in Kotlin. Wichtige Änderungen:- Korrigiert die Nullität ihrer generischen Werte, sodass sie nicht null ist. Dies konnte zuvor nicht deklariert werden, wurde aber in allen öffentlichen APIs erzwungen.
- Aufgrund der Java-Interoperabilität von Kotlin war es bisher möglich, auf bestimmte Methoden sowohl als Attribute als auch als Funktionen zuzugreifen. Um Duplikate zu reduzieren und gleichzeitig die Binärkompatibilität aufrechtzuerhalten, mussten diese entfernt werden. Diese Änderung ist nicht mit der Quelle kompatibel. Folgende Aufrufe sind betroffen:
.isEmpty
,.getLast()
und.getFirst()
. (Ifffac)
Konvertieren Sie
CircularIntArray
in Kotlin. Aufgrund der Java-Interoperabilität von Kotlin war es bisher möglich, auf bestimmte Methoden sowohl als Eigenschaften als auch als Funktionen zuzugreifen. Um Duplikate zu reduzieren und gleichzeitig die Binärkompatibilität aufrechtzuerhalten, mussten diese entfernt werden. Diese Änderung ist nicht mit der Quelle kompatibel. Folgende Aufrufe sind betroffen:.isEmpty
,.getLast()
und.getFirst()
. (Ie36ce)LruCache
in Kotlin konvertieren (Ia2f19)Konvertieren Sie
SparseArrayCompat
in Kotlin. (If6fe8)SparseArrayCompat.valueAt()
wird eine kleine Verhaltensänderung hinzugefügt, wodurchnull
nicht mehr fälschlicherweise für nicht initialisierte Aufrufe außerhalb vonsize()
, aber innerhalb der angegebenen anfänglichen Kapazität zurückgegeben wird.Mit dieser Änderung wird auch für einige Typen die richtige Nullstufe 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
wurden 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) - Sorgen Sie dafür, dass
entrySet()
API-konform ist, indem SieentrySet().toArray()
,remove()
,removeAll()
undretainAll()
implementieren und die Implementierung vonentrySet().addAll()
(I5d505) entfernen.
Version 1.2.0-rc01
17. November 2021
androidx.collection:collection:1.2.0-rc01
und androidx.collection:collection-ktx:1.2.0-rc01
wurden 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
wurden veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Fehlerkorrekturen
- Sorgen Sie dafür, dass
entrySet()
API-konform ist, indem SieentrySet().toArray()
,remove()
,removeAll()
undretainAll()
implementieren und die Implementierung vonentrySet().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
wurden 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
wurden veröffentlicht. Die in 1.1.0 enthaltenen Commits finden Sie hier.
Nachfolgend finden Sie eine Zusammenfassung der Änderungen von Version 1.0.0 bis Version 1.1.0:
Neue Funktionen
- Effizientere Implementierung der Funktionen
contains
undisNotEmpty
im Artefakt „collection-ktx“ verwenden. (aosp/866529)
API-Änderungen
putIfAbsent
zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzufügen (aosp/772608)getOrDefault
zuSimpleArrayMap
hinzufügen (aosp/772607)- Fügen Sie
LongSparseArray
,SimpleArrayMap
undSparseArrayCompat
remove
mit zwei Argumenten hinzu. Entferne entsprechende KTX-Erweiterungen für diese Funktion. (aosp/772482) - Fügen Sie
replace
mit zwei Argumenten zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzu (aosp/772483) - Fügen Sie
replace
mit drei Argumenten zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzu (aosp/772484) - Einstellung redundanter
delete
-Methoden Die Methoderemove
bietet die gleiche API und dieselben Funktionen und stimmt mit der API überein, die von nicht spezialisierten Karten verwendet wird. (aosp/866053)
Fehlerkorrekturen
- Ändern Sie
SimpleArrayMap
, um den internen globalen Cache von Arrays mitSimpleArrayMap.class
stattArrayMap.class
zu synchronisieren. Dadurch wird sichergestellt, dassArrayMap
durch Tools zur Codekomprimierung entfernt werden kann, wenn Sie nurSimpleArrayMap
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
wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
Neue Funktionen
- Effizientere Implementierung der Funktionen
contains
undisNotEmpty
im Artefakt „collection-ktx“ verwenden. (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
wurden veröffentlicht. Die in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
- Bei der in den Versionshinweisen zu Alpha 03 genannten Methode mit geändertem
@RestrictTo
-Wert wurde die Methode entfernt. Sie wurde heute oder in der Vergangenheit von keiner AndroidX-Bibliothek verwendet und bot keine Funktionen, die in der öffentlichen API fehlten.
Fehlerkorrekturen
- Ändern Sie
SimpleArrayMap
, um den internen globalen Cache von Arrays mitSimpleArrayMap.class
stattArrayMap.class
zu synchronisieren. Dadurch wird sichergestellt, dassArrayMap
durch Tools zur Codekomprimierung entfernt werden kann, wenn Sie nurSimpleArrayMap
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
wurden freigegeben.
Die vollständige Liste der in dieser Version enthaltenen Commits finden Sie hier.
API-Änderungen
- Eine Methode in
ArraySet
, die zuvor als@RestrictTo(LIBRARY_GROUP)
gekennzeichnet war, wurde zu@RestrictTo(LIBRARY_GROUP_PREFIX)
geändert. Damit wird die historische Verwendung durch andere AndroidX-Bibliotheken unterstützt, die sich jetzt in anderen Maven-Gruppen-IDs befinden. Diese Methode wird in 1.1.0-alpha04 entweder veröffentlicht oder entfernt, da andere AndroidX-Bibliotheken keine speziellen APIs erhalten sollten, die andere Entwickler nicht erhalten.
Version 1.1.0-alpha02
30. Januar 2019
androidx.collection:collection 1.1.0-alpha02
und androidx.collection:collection-ktx 1.1.0-alpha02
wurden freigegeben.
API-Änderungen
- Einstellung redundanter
delete
-Methoden Dieremove
-Methoden bieten die gleiche API und dieselben Funktionen und stimmen mit der API überein, die von nicht spezialisierten Karten verwendet wird. (aosp/866053)
Version 1.1.0-alpha01
3. Dezember 2018
API-Änderungen
putIfAbsent
zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzufügen (aosp/772608)getOrDefault
zuSimpleArrayMap
hinzufügen (aosp/772607)- Fügen Sie
LongSparseArray
,SimpleArrayMap
undSparseArrayCompat
remove
mit zwei Argumenten hinzu. Entferne entsprechende KTX-Erweiterungen für diese Funktion. (aosp/772482) - Fügen Sie
replace
mit zwei Argumenten zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzu (aosp/772483) - Fügen Sie
replace
mit drei Argumenten zuLongSparseArray
,SimpleArrayMap
undSparseArrayCompat
hinzu (aosp/772484)