Collection

  
Réduisez l'impact sur la mémoire des collections nouvelles et existantes de petite taille.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
27 août 2025 1.5.0 - - 1.6.0-alpha01

Déclarer des dépendances

Pour ajouter une dépendance à Collection, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances des artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou module :

Groovy

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

Kotlin

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

Pour en savoir plus sur les dépendances, consultez la page Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.6

Version 1.6.0-alpha01

27 août 2025

Publication d'androidx.collection:collection-*:1.6.0-alpha01. La version 1.6.0-alpha01 contient ces commits.

Modifications apportées à l'API

  • Les projets publiés avec Kotlin 2.0 nécessitent KGP 2.0.0 ou version ultérieure pour être utilisés (Idb6b5).

Correction de bugs

  • Auparavant, SparseArrayCompat renvoyait null pour valueAt et keyAt lorsqu'un index situé dans la plage allouée, mais en dehors de la plage insérée 0..size -1, était transmis. Comme indiqué dans la documentation, ce comportement n'a jamais été prévu et se situe en dehors de la plage d'entrée valide. Cette modification corrige ce comportement en générant plutôt IndexOutOfBounds lorsqu'un index non valide est transmis. (I68453)

Contribution externe

Merci à Jake Wharton pour les contributions suivantes :

  • Alignez le comportement de joinToString sur les collections de plate-forme en ajoutant un séparateur avant et le suffixe après l'indicateur de troncature lorsque vous limitez les éléments inclus. (I1b7e8)
  • ScatterSet.hashCode ne protège plus contre la récursivité (c'est-à-dire l'ensemble qui est ajouté à lui-même). Son comportement est ainsi aligné sur ScatterMap, HashSet et les ensembles primitifs basés sur la dispersion (par exemple, LongSet). Notez que la méthode equals était déjà sujette à la récursivité et que toString s'en défend, deux comportements qui s'alignent sur les autres collections. (I9c84a)
  • La fonction ScatterSet.retainAll est désormais intégrée pour éviter de créer une instance lambda. (Ifa4b7)
  • ScatterSet.hashCode n'utilise plus sa capacité dans le calcul du hachage, ce qui garantit que des contenus égaux, mais avec des capacités différentes, produisent toujours la même valeur. (Ic863b)
  • IllegalStateException est désormais généré si vous appelez remove() avant next() sur un itérateur des collections keys, values ou entries de ScatterMap.asMap() ou ScatterSet.asSet(). Son comportement est ainsi aligné sur celui des cartes et des ensembles standards. (I71694)

Version 1.5

Version 1.5.0

12 mars 2025

Publication d'androidx.collection:collection-*:1.5.0. La version 1.5.0 contient ces commits.

Version 1.5.0-rc01

26 février 2025

Publication d'androidx.collection:collection-*:1.5.0-rc01. La version 1.5.0-rc01 contient ces commits.

Version 1.5.0-beta03

29 janvier 2025

Publication d'androidx.collection:collection-*:1.5.0-beta03. La version 1.5.0-beta03 contient ces commits.

Version 1.5.0-beta02

15 janvier 2025

Publication d'androidx.collection:collection-*:1.5.0-beta02. La version 1.5.0-beta02 contient ces commits.

Version 1.5.0-beta01

11 décembre 2024

Publication d'androidx.collection:collection-*:1.5.0-beta01. La version 1.5.0-beta01 contient ces commits.

Modifications apportées à l'API

  • Ajout de la prise en charge de la cible KMP watchosDeviceArm64 et de la cible kotlin 1.9 (Icf15d, b/364652024)

Version 1.5.0-alpha06

13 novembre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha06. La version 1.5.0-alpha06 contient ces commits.

Correction de bugs

  • Correction d'un plantage qui pouvait se produire dans SieveCache et OrderedScatterSet lors de l'ajout de nombreux éléments entraînant des collisions de clés répétées. (Iaaf3d, b/375607736)
  • Ajoutez la cible wasm à la bibliothèque de collecte. (I66fe3, b/352722444)

Version 1.5.0-alpha05

30 octobre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha05. La version 1.5.0-alpha05 contient ces commits.

Version 1.5.0-alpha04

16 octobre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha04. La version 1.5.0-alpha04 contient ces commits.

Version 1.5.0-alpha03

2 octobre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha03. La version 1.5.0-alpha03 contient ces commits.

Modifications apportées à l'API

  • Mise à jour de la version de Kotlin vers la version 1.9 (I1a14c)

Contribution externe

  • Avancez de contains à containsKey. Merci, Jake Wharton ! (I9362b)
  • Ajoutez des générateurs de conteneurs pour les collections spécialisées dans les scalaires. Merci, Jake Wharton ! (I13179)

Version 1.5.0-alpha02

18 septembre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha02. La version 1.5.0-alpha02 contient ces commits.

Modifications apportées à l'API

  • Ajout de la compatibilité avec la plate-forme cible watchosDeviceArm64. (I1cc04, b/364652024)

Version 1.5.0-alpha01

4 septembre 2024

Publication d'androidx.collection:collection-*:1.5.0-alpha01. La version 1.5.0-alpha01 contient ces commits.

Modifications apportées à l'API

  • OrderedScatterSet est une nouvelle collection ordonnée sans allocation (Ic4178).
  • SieveCache est un nouveau remplacement sans allocation pour LruCache qui offre de meilleures caractéristiques de taux de réussite. (I50a17)
  • Exposition de la représentation interne packedValue pour IntIntPair et FloatFloatPair. (Ifeb75, b/331853566)
  • Ajout de l'accès au tableau de contenu dans les collections de listes. (I899d5, b/333903173)
  • Ajoutez DoubleList, une structure de données de type liste optimisée pour les valeurs Double. (Ia10d1, b/315127635)

Correction de bugs

  • La bibliothèque Collections passe à Kotlin 1.9 (I0782f)
  • Optimisez de nombreuses collections pour plus d'efficacité. (Ic0566)

Version 1.4

Version 1.4.5

30 octobre 2024

Publication d'androidx.collection:collection-*:1.4.5. La version 1.4.5 contient ces commits.

Version 1.4.4

18 septembre 2024

Publication d'androidx.collection:collection-*:1.4.4. La version 1.4.4 contient ces commits.

Correction de bugs

  • Solution de contournement ArrayIndexOutOfBounds lors du tri d'une collection vide. (I65245)

Version 1.4.3

7 août 2024

Publication d'androidx.collection:collection-*:1.4.3. La version 1.4.3 contient ces commits.

Correction de bugs

  • Correction d'une corruption qui pouvait se produire dans ScatterMap, ScatterSet et leurs variantes primitives. (I38a4a, b/352560465)
  • Optimisations des performances. En particulier :
    • Remplacez les appels vers check() et required() par des variantes qui n'insèrent pas les exceptions. Cela réduit la taille binaire finale et, plus important encore, soulage un peu la pression du cache d'instructions.
    • Amélioration de removeDeletedMarkers() dans la famille de collections "scatter". La nouvelle version efface les repères supprimés par groupes de huit et évite ainsi les écritures plus coûteuses. (Ic0566)

Version 1.4.2

24 juillet 2024

Publication d'androidx.collection:collection-*:1.4.2. La version 1.4.2 contient ces commits.

Nouvelles fonctionnalités

  • Inclut des cibles Kotlin Multiplatform supplémentaires : watchos, tvos, linuxArm64. (b/352543988)

Version 1.4.1

10 juillet 2024

Publication d'androidx.collection:collection-*:1.4.1. La version 1.4.1 contient ces commits.

Correction de bugs

  • Supprimez les marqueurs de suppression de Map/Set lors du redimensionnement. (7a996c5, b/345960092)

Version 1.4.0

24 janvier 2024

Publication d'androidx.collection:collection-*:1.4.0. Liste des commits de la version 1.4.0

Changements importants depuis la version 1.3.0

De nouvelles collections à haute efficacité ont été ajoutées pour stocker les primitives sans boxing :

  • MutableScatterMap et ScatterMap : classes avec MutableMap et API de type Map
  • MutableScatterSet et ScatterSet : classes avec MutableSet et API de type Set
  • MutableObjectList et ObjectList : classes avec MutableList et API de type liste

Par exemple, une carte avec une clé entière et une valeur de type référence est une IntObjectMap<T>. Un mappage avec une clé longue et une valeur flottante est un LongFloatMap. Il n'existe pas de version nommée ObjectObjectMap, car elle est couverte par ScatterMap/MutableScatterMap.

Version 1.4.0-rc01

10 janvier 2024

Publication d'androidx.collection:collection-*:1.4.0-rc01 sans aucune modification. Liste des commits de la version 1.4.0-rc01

Version 1.4.0-beta02

29 novembre 2023

Publication d'androidx.collection:collection-*:1.4.0-beta02. Liste des commits de la version 1.4.0-beta02

Nouvelles fonctionnalités

  • Amélioration des performances de FloatFloatPair. (If5537)

Correction de bugs

  • L'itérateur ScatterMap.asMap() renvoie désormais de nouvelles instances (I28932, b/310365754).

Version 1.4.0-beta01

15 novembre 2023

Publication d'androidx.collection:collection-*:1.4.0-beta01. Liste des commits de la version 1.4.0-beta01

Correction de bugs

  • Correction de ListIterator qui définissait incorrectement des valeurs dans ObjectList, ce qui pouvait entraîner un plantage en raison de IndexOutOfBoundsException. (I3bd8a, b/307049391)

Version 1.4.0-alpha02

18 octobre 2023

Publication d'androidx.collection:collection-*:1.4.0-alpha02. Liste des commits de la version 1.4.0-alpha02

Modifications apportées à l'API

  • Ajout d'une surcharge pour put qui renvoie la valeur précédente lorsqu'elle est remplacée par toutes les collections primitives, telles que FloatFloatMap.
  • Convertit les méthodes removeIf sur les collections primitives, telles que MutableFloatFloatMap, en méthodes intégrées. Cela garantit que le lambda pour removeIf n'est pas alloué.

Version 1.4.0-alpha01

4 octobre 2023

Publication d'androidx.collection:collection-*:1.4.0-alpha01. Liste des commits de la version 1.4.0-alpha01.

Nouvelles fonctionnalités

De nouvelles collections à haute efficacité ont été ajoutées. Elles présentent une faible surcharge d'allocation et de hautes performances :

  • MutableScatterMap et ScatterMap : classes avec MutableMap et API de type Map
  • MutableScatterSet et ScatterSet : classes avec MutableSet et API de type Set
  • MutableObjectList et ObjectList : classes avec MutableList et API de type liste

De nouvelles collections à haute efficacité ont été ajoutées pour stocker les primitives sans boxing :

  • Mutable[Int|Float|Long]List : classes avec une API de type MutableList<Int|Float|Long>. La version en lecture seule [Int|Float|Long]List existe également. Par exemple, les entiers peuvent être conservés dans un IntList.
  • Mutable[Int|Float|Long]Set : classes avec une API de type MutableSet<Int|Float|Long>. La version en lecture seule [Int|Float|Long]Set existe également. Par exemple, les entiers peuvent être conservés dans un IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map : classes avec une API de type Mutable<Int|Float|Long,T, Int|Float|Long|T>. La version en lecture seule [Int|Float|Long|Object][Int|Float|Long|Object]Map existe également. Par exemple, une carte avec une clé entière et une valeur de type référence est une IntObjectMap<T>. Un mappage avec une clé longue et une valeur flottante est un LongFloatMap. Il n'existe pas de version nommée ObjectObjectMap, car elle est couverte par ScatterMap/MutableScatterMap.

Version 1.3.0

Version 1.3.0

4 octobre 2023

Publication d'androidx.collection:collection-*:1.3.0. Liste des commits de la version 1.3.0

Changements importants depuis la version 1.2.0

  • Vous pouvez désormais utiliser des collections dans les projets Kotlin Multiplatform. Notez que les cibles non Android des Collections sont toujours expérimentales, mais nous avons décidé de fusionner les versions pour permettre aux développeurs de les essayer plus facilement.
  • Toutes les sources ont été migrées vers Kotlin. Dans le cadre de cette modification, de nombreuses API sont désormais correctement typées pour la nullité et quelques membres privés de package sont devenus internal. Vous trouverez la liste exacte des modifications dans les notes de version mineures pour la version 1.3.x ci-dessous.
  • En plus de la migration Kotlin, collection-ktx a été fusionné avec l'artefact de collection principal. Vous pouvez supprimer en toute sécurité toutes les dépendances sur collection:collection-ktx au profit de collection:collection, car collection-ktx est désormais vide.

Version 1.3.0-rc01

6 septembre 2023

Publication d'androidx.collection:collection-*:1.3.0-rc01 sans aucune modification. Liste des commits de la version 1.3.0-rc01

Version 1.3.0-beta01

9 août 2023

Publication d'androidx.collection:collection-*:1.3.0-beta01. Liste des commits de la version 1.3.0-beta01

Version 1.3.0-alpha04

24 mars 2023

Publication d'androidx.collection:collection-*:1.3.0-alpha04.

Correction de bugs

  • Suppression des contraintes de dépendance des artefacts Maven pour contourner un problème de compilation dans les cibles Kotlin/Native (b/274786186, KT-57531).

Version 1.3.0-alpha03

22 mars 2023

Publication d'androidx.collection:collection-*:1.3.0-alpha03. Liste des commits de la version 1.3.0-alpha03

Nouvelles fonctionnalités

  • Vous pouvez désormais utiliser des collections dans les projets KMM. Notez que les cibles non Android des Collections sont toujours expérimentales, mais nous avons décidé de fusionner les versions pour permettre aux développeurs de les essayer plus facilement.

Modifications apportées à l'API

  • ArraySet implémente désormais MutableCollections au lieu de AbstractMutableCollection pour permettre une implémentation plus efficace de la mémoire de toArray (I1ac32).

Correction de bugs

  • ArraySet.toArray n'est désormais disponible que sur la JVM, car il n'a toujours été inclus que pour la compatibilité avec Java. Les utilisateurs de Kotlin doivent généralement utiliser les assistants .toTypedArray de la bibliothèque standard, qui offrent exactement la même fonctionnalité avec une sécurité de type supplémentaire. (I2c59b)

Version 1.3.0-alpha02

27 juillet 2022

Publication d'androidx.collection:collection:1.3.0-alpha02 et d'androidx.collection:collection-ktx:1.3.0-alpha02. Liste des commits de la version 1.3.0-alpha02

Modifications apportées à l'API

  • Disponibilité de SparseArrayCompat pour les plates-formes autres que jvm à partir de l'artefact commun (Ic9bd0, b/219589118, b/228347315).
  • Disponibilité de CircularIntArray pour les plates-formes autres que jvm à partir de l'artefact commun (I3d8ef, b/228344943).
  • Disponibilité de LongSparseArray pour les plates-formes autres que jvm à partir de l'artefact commun (I73149, b/228347315).

Version 1.3.0-alpha01

29 juin 2022

Publication d'androidx.collection:collection:1.3.0-alpha01 et d'androidx.collection:collection-ktx:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01.

Nouvelles fonctionnalités

  • Migration des extensions collection-ktx vers androidx.collection:collection, le principal artefact des collections. Ce changement rend les extensions -ktx préexistantes accessibles aux utilisateurs du Kotlin sans avoir besoin de la dépendance -ktx, tout en conservant la compatibilité pour les utilisateurs existants. Il n'est plus utile de conserver ces extensions dans un artefact -ktx distinct, car l'artefact principal a été déplacé vers Kotlin (I6eef2).

Modifications apportées à l'API

  • Extension d'AbstractMutableCollection par ArraySet, qui n'implémente plus directement l'interface Collection (If6da0, b/230860589).
  • Conversion d'ArraySet en Kotlin. En raison d'une rédaction plus stricte, il est possible que certains appels Kotlin ne soient plus compilés (Id68c1, b/230860589).
    • Remplacement du type d'argument T? par T pour les appels suivants :
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Remplacement du type renvoyé T! par T? pour les appels suivants :
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Les appels suivants ne sont plus possibles à partir du Kotlin :
      • set.toArray() : utilisez set.toTypedArray()
      • set.toArray(array) : utilisez set.forEachIndexed(array::set)
  • Fusion du constructeur surchargé de SparseArrayCompat en tant qu'argument facultatif pour les utilisateurs du Kotlin (If8407, b/227474719).
  • Suppression de la syntaxe d'opérateur pour SparseArrayCompat.get(key, defaultValue).. Notez que la syntaxe d'opérateur pour .get(key) est toujours autorisée, mais la surface d'API de SparseArrayCompat correspond mieux aux autres classes de cette bibliothèque (I9a38d).
  • Migration des extensions LongSparseArray vers l'artefact principal, androidx.collection:collection. Ce changement rend les extensions -ktx préexistantes accessibles aux utilisateurs du Kotlin sans avoir besoin de la dépendance -ktx, tout en conservant la compatibilité pour les utilisateurs existants. Il n'est plus utile de conserver ces extensions dans un artefact -ktx distinct, car l'artefact principal a été déplacé vers Kotlin (I8659a).
  • Conversion de LongSparseArray en Kotlin. Cette modification ajoute une valeur nulle à ses types, le rendant ainsi compatible avec le binaire, mais cela peut entraîner des incompatibilités de source. Notamment, * .isEmpty n'est plus accessible en tant que propriété, mais en tant qu'appel de fonction en Kotlin : .isEmpty() (Idfd0f).
  • Conversion de SimpleArrayMap en Kotlin. Ce changement introduit quelques modifications incompatibles, résultant de l'interopérabilité de Java avec le Kotlin et de la possibilité de définir correctement la valeur nulle des types dans la source.
    • Privatisation des API privées .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull() et .indexOfValue(). Techniquement, il s'agit d'une modification incompatible avec le binaire, mais elle reflète la visibilité prévue de ces champs et il n'est pas possible de s'en rapprocher davantage en Kotlin, qui ne permet pas de spécifier une visibilité privée pour le paquet.
    • Correction de la valeur nulle de certains types pour les méthodes .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt et .replace.
    • Pour les utilisateurs de Kotlin, .isEmpty() n'est désormais disponible qu'en tant que fonction plutôt que via l'accès à la propriété (I271b7, b/182813986).
  • Conversion de CircularArray en Kotlin. Changements notables :

    • Correction et remplacement de la valeur nulle de ses valeurs génériques par une valeur non nulle, qui était auparavant impossible à déclarer, mais qui était appliquée dans toutes ses API publiques.
    • En raison de l'interopérabilité de Java avec le Kotlin, il était auparavant possible d'accéder à certaines méthodes à la fois en tant que propriétés ou fonctions. Cependant, pour réduire la duplication tout en conservant la compatibilité binaire, il était nécessaire de les supprimer, ce qui n'est pas compatible avec la source. Les appels concernés sont : .isEmpty, .getLast() et .getFirst() (Ifffac).
  • Conversion de CircularIntArray en Kotlin. En raison de l'interopérabilité de Java avec le Kotlin, il était auparavant possible d'accéder à certaines méthodes à la fois en tant que propriétés ou fonctions. Cependant, pour réduire la duplication tout en conservant la compatibilité binaire, il était nécessaire de les supprimer, ce qui n'est pas compatible avec la source. Les appels concernés sont : .isEmpty, .getLast() et .getFirst() (Ie36ce).

  • Conversion de LruCache en Kotlin (Ia2f19).

  • Conversion de SparseArrayCompat en Kotlin (If6fe8).

    Le comportement de SparseArrayCompat.valueAt() a été légèrement modifié. Il ne renvoie plus null de manière erronée pour les appels non initialisés hors des limites de size(), mais dans la capacité initiale fournie.

    Cette modification introduit également une valeur nulle pour certains types précédemment manquants.

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

1er décembre 2021

Publication d'androidx.collection:collection:1.2.0 et d'androidx.collection:collection-ktx:1.2.0. Liste des commits de la version 1.2.0

Changements importants depuis la version 1.1.0

  • Ajout d'un constructeur de tableau à ArraySet (Id7f19).
  • Mise en conformité avec l'API d'entrySet() en implémentant entrySet().toArray(), remove(), removeAll() et retainAll(), et en supprimant l'implémentation d'entrySet().addAll() (I5d505).

Version 1.2.0-rc01

17 novembre 2021

Publication d'androidx.collection:collection:1.2.0-rc01 et d'androidx.collection:collection-ktx:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01.

Modifications apportées à l'API

  • Aucun changement par rapport à la version bêta précédente.

Version 1.2.0-beta01

13 octobre 2021

Publication d'androidx.collection:collection:1.2.0-beta01 et d'androidx.collection:collection-ktx:1.2.0-beta01. Liste des commits de la version 1.2.0-beta01

Corrections de bugs

  • Mise en conformité avec l'API d'entrySet() en implémentant entrySet().toArray(), remove(), removeAll() et retainAll(), et en supprimant l'implémentation d'entrySet().addAll() (I5d505).

Version 1.2.0-alpha01

16 décembre 2020

Publication d'androidx.collection:collection:1.2.0-alpha01 et d'androidx.collection:collection-ktx:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01

Modifications apportées à l'API

  • Ajout d'un constructeur de tableau à ArraySet (Id7f19).

Version 1.1.0

Version 1.1.0

5 juin 2019

Publication d'androidx.collection:collection:1.1.0 et d'androidx.collection:collection-ktx:1.1.0. Pour consulter les commits de la version 1.1.0, cliquez ici.

Vous trouverez ci-dessous un récapitulatif des différences entre la version 1.0.0 et la version 1.1.0 :

Nouvelles fonctionnalités

  • Implémentation plus efficace pour les fonctions contains et isNotEmpty dans l'artefact "collection-ktx" (aosp/866529).

Modifications apportées à l'API

  • Ajout de putIfAbsent à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772608).
  • Ajout de getOrDefault à SimpleArrayMap (aosp/772607).
  • Ajout d'une méthode remove à deux arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat. Abandon des extensions KTX de cette fonctionnalité (aosp/772482).
  • Ajout d'une méthode replace à deux arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772483).
  • Ajout d'une méthode replace à trois arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772484).
  • Abandon des méthodes delete redondantes. La méthode remove offre la même API et les mêmes fonctionnalités que l'API utilisée par les Maps non spécialisées (aosp/866053).

Corrections de bugs

  • Modification de SimpleArrayMap pour synchroniser son cache global interne de tableaux sur SimpleArrayMap.class plutôt que sur ArrayMap.class. Ainsi, si vous n'utilisez que SimpleArrayMap, ArrayMap peut être supprimé à l'aide d'outils de minification du code (aosp/934557).

Version 1.1.0-rc01

7 mai 2019

Publication d'androidx.collection:collection:1.1.0-rc01 et d'androidx.collection:collection-ktx:1.1.0-rc01. Les commits inclus dans cette version sont disponibles sur cette page.

Nouvelles fonctionnalités

  • Implémentation plus efficace pour les fonctions contains et isNotEmpty dans l'artefact "collection-ktx" (aosp/866529).

Version 1.1.0-beta01

3 avril 2019

Publication d'androidx.collection:collection:1.1.0-beta01 et d'androidx.collection:collection-ktx:1.1.0-beta01. Les commits inclus dans cette version sont disponibles sur cette page.

Modifications apportées à l'API

  • Suppression de la méthode mentionnée dans les notes de version alpha03 indiquant la modification de sa valeur @RestrictTo. Elle n'était utilisée par aucune bibliothèque AndroidX (actuellement ou par le passé) et ne proposait aucune fonctionnalité qui manquait dans l'API publique.

Corrections de bugs

  • Modification de SimpleArrayMap pour synchroniser son cache global interne de tableaux sur SimpleArrayMap.class plutôt que sur ArrayMap.class. Ainsi, si vous n'utilisez que SimpleArrayMap, ArrayMap peut être supprimé à l'aide d'outils de minification du code (aosp/934557).

Version 1.1.0-alpha03

13 mars 2019

Publication d'androidx.collection:collection:1.0.0-alpha03 et d'androidx.collection:collection-ktx:1.0.0-alpha03. La liste complète des commits inclus dans cette version est disponible sur cette page.

Modifications apportées à l'API

  • Remplacement du marquage @RestrictTo(LIBRARY_GROUP) d'une méthode sur ArraySet par @RestrictTo(LIBRARY_GROUP_PREFIX) pour prendre en charge l'utilisation historique par d'autres bibliothèques AndroidX se trouvant désormais dans des ID de groupe Maven différents. Cette méthode sera soit rendue publique, soit supprimée dans la version 1.1.0-alpha04, car les autres bibliothèques AndroidX ne doivent pas obtenir des API spéciales auxquelles d'autres développeurs n'ont pas accès.

Version 1.1.0-alpha02

30 janvier 2019

Publication d'androidx.collection:collection 1.1.0-alpha02 et d'androidx.collection:collection-ktx 1.1.0-alpha02.

Modifications apportées à l'API

  • Abandon des méthodes delete redondantes. Les méthodes remove offrent la même API et les mêmes fonctionnalités, et correspondent à l'API utilisée par les Maps non spécialisées (aosp/866053).

Version 1.1.0-alpha01

3 décembre 2018

Modifications apportées à l'API

  • Ajout de putIfAbsent à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772608).
  • Ajout de getOrDefault à SimpleArrayMap (aosp/772607).
  • Ajout d'une méthode remove à deux arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat. Abandon des extensions KTX de cette fonctionnalité (aosp/772482).
  • Ajout d'une méthode replace à deux arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772483).
  • Ajout d'une méthode replace à trois arguments à LongSparseArray, SimpleArrayMap et SparseArrayCompat (aosp/772484).