Raccolta

  
Riduce l'impatto sulla memoria delle raccolte piccole esistenti e nuove.
Ultimo aggiornamento Release stabile Candidato per la release Release beta Release alpha
27 agosto 2025 1.5.0 - - 1.6.0-alpha01

Dichiara le dipendenze

Per aggiungere una dipendenza da Collection, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per la tua app o il tuo modulo:

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

Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.6

Versione 1.6.0-alpha01

27 agosto 2025

androidx.collection:collection-*:1.6.0-alpha01 viene rilasciata. La versione 1.6.0-alpha01 contiene questi commit.

Modifiche alle API

  • I progetti rilasciati con Kotlin 2.0 richiedono l'utilizzo di KGP 2.0.0 o versioni successive (Idb6b5)

Correzioni di bug

  • In precedenza, SparseArrayCompat restituiva null per valueAt e keyAt quando veniva passato un indice compreso nell'intervallo allocato, ma al di fuori dell'intervallo inserito 0..size -1. Come documentato, questo comportamento non è mai stato previsto e si trova al di fuori dell'intervallo di input valido. Questa modifica corregge il comportamento in modo che venga generato un errore IndexOutOfBounds quando viene passato un indice non valido. (I68453)

Contributo esterno

Grazie a Jake Wharton per i seguenti contributi:

  • Allinea il comportamento di joinToString alle raccolte della piattaforma aggiungendo un separatore prima e il suffisso dopo l'indicatore di troncamento quando limiti gli elementi inclusi. (I1b7e8)
  • ScatterSet.hashCode non protegge più dalla ricorsione (ovvero l'insieme viene aggiunto a se stesso). In questo modo, il suo comportamento è in linea con ScatterMap, HashSet e i set basati sulla dispersione primitiva (ad es. LongSet). Tieni presente che il metodo equals era già soggetto a ricorsione e toString lo protegge, entrambi i comportamenti che si allineano alle altre raccolte. (I9c84a)
  • La funzione ScatterSet.retainAll è ora incorporata per evitare la creazione di un'istanza lambda. (Ifa4b7)
  • ScatterSet.hashCode non utilizza più la sua capacità nel calcolo dell'hash, garantendo che contenuti uguali ma capacità diverse producano comunque lo stesso valore. (Ic863b)
  • Ora viene generata l'eccezione IllegalStateException se chiami remove() prima di next() su un iteratore delle raccolte keys, values o entries di ScatterMap.asMap() o ScatterSet.asSet(). In questo modo, il suo comportamento viene allineato a quello della mappa e del set regolari. (I71694)

Versione 1.5

Versione 1.5.0

12 marzo 2025

androidx.collection:collection-*:1.5.0 viene rilasciata. La versione 1.5.0 contiene questi commit.

Versione 1.5.0-rc01

26 febbraio 2025

androidx.collection:collection-*:1.5.0-rc01 viene rilasciata. La versione 1.5.0-rc01 contiene questi commit.

Versione 1.5.0-beta03

29 gennaio 2025

androidx.collection:collection-*:1.5.0-beta03 viene rilasciata. La versione 1.5.0-beta03 contiene questi commit.

Versione 1.5.0-beta02

15 gennaio 2025

androidx.collection:collection-*:1.5.0-beta02 viene rilasciata. La versione 1.5.0-beta02 contiene questi commit.

Versione 1.5.0-beta01

11 dicembre 2024

androidx.collection:collection-*:1.5.0-beta01 viene rilasciata. La versione 1.5.0-beta01 contiene questi commit.

Modifiche alle API

  • Aggiunge il supporto per watchosDeviceArm64 KMP target e target kotlin 1.9 (Icf15d, b/364652024)

Versione 1.5.0-alpha06

13 novembre 2024

androidx.collection:collection-*:1.5.0-alpha06 viene rilasciata. La versione 1.5.0-alpha06 contiene questi commit.

Correzioni di bug

  • È stato corretto un arresto anomalo che poteva verificarsi in SieveCache e OrderedScatterSet quando si aggiungevano numerosi elementi che causavano collisioni ripetute di chiavi. (Iaaf3d, b/375607736)
  • Aggiungi la destinazione wasm alla raccolta. (I66fe3, b/352722444)

Versione 1.5.0-alpha05

30 ottobre 2024

androidx.collection:collection-*:1.5.0-alpha05 viene rilasciata. La versione 1.5.0-alpha05 contiene questi commit.

Versione 1.5.0-alpha04

16 ottobre 2024

androidx.collection:collection-*:1.5.0-alpha04 viene rilasciata. La versione 1.5.0-alpha04 contiene questi commit.

Versione 1.5.0-alpha03

2 ottobre 2024

androidx.collection:collection-*:1.5.0-alpha03 viene rilasciata. La versione 1.5.0-alpha03 contiene questi commit.

Modifiche alle API

  • Aggiornamento della versione di Kotlin alla 1.9 (I1a14c)

Contributo esterno

  • Avanti di contains fino a containsKey. Grazie Jake Wharton. (I9362b)
  • Aggiungi generatori di contenitori per raccolte specializzate scalari. Grazie Jake Wharton. (I13179)

Versione 1.5.0-alpha02

18 settembre 2024

androidx.collection:collection-*:1.5.0-alpha02 viene rilasciata. La versione 1.5.0-alpha02 contiene questi commit.

Modifiche alle API

  • Aggiunge il supporto per il target della piattaforma watchosDeviceArm64. (I1cc04, b/364652024)

Versione 1.5.0-alpha01

4 settembre 2024

androidx.collection:collection-*:1.5.0-alpha01 viene rilasciata. La versione 1.5.0-alpha01 contiene questi commit.

Modifiche alle API

  • OrderedScatterSet è una nuova raccolta senza allocazione ordinata (Ic4178)
  • SieveCache è un nuovo sostituto senza allocazione di LruCache che offre caratteristiche di hit ratio migliori. (I50a17)
  • È stata esposta la rappresentazione interna di packedValue per IntIntPair e FloatFloatPair. (Ifeb75, b/331853566)
  • Aggiunta dell'accesso all'array di contenuti nelle raccolte di elenchi. (I899d5, b/333903173)
  • Aggiungi DoubleList, una struttura di dati simile a un elenco ottimizzata per i valori Double. (Ia10d1, b/315127635)

Correzioni di bug

  • La libreria delle raccolte verrà spostata su Kotlin 1.9 (I0782f)
  • Ottimizza molte delle raccolte per renderle più efficienti. (Ic0566)

Versione 1.4

Versione 1.4.5

30 ottobre 2024

androidx.collection:collection-*:1.4.5 viene rilasciata. La versione 1.4.5 contiene questi commit.

Versione 1.4.4

18 settembre 2024

androidx.collection:collection-*:1.4.4 viene rilasciata. La versione 1.4.4 contiene questi commit.

Correzioni di bug

  • Soluzione alternativa ArrayIndexOutOfBounds quando ordini una raccolta vuota. (I65245)

Versione 1.4.3

7 agosto 2024

androidx.collection:collection-*:1.4.3 viene rilasciata. La versione 1.4.3 contiene questi commit.

Correzioni di bug

  • È stata corretta una corruzione che poteva verificarsi in ScatterMap, ScatterSet e nelle relative varianti primitive. (I38a4a, b/352560465)
  • Ottimizzazioni delle prestazioni. In particolare:
    • Sostituisci le chiamate a check() e required() con varianti che non generano eccezioni inline. In questo modo si riducono le dimensioni del file binario finale e, soprattutto, si riduce un po' la pressione della cache istruzioni.
    • Miglioramento di removeDeletedMarkers() nella famiglia di raccolte "dispersione". La nuova versione cancella gli indicatori eliminati 8 alla volta e salta le scritture più costose durante il processo. (Ic0566)

Versione 1.4.2

24 luglio 2024

androidx.collection:collection-*:1.4.2 viene rilasciata. La versione 1.4.2 contiene questi commit.

Nuove funzionalità

  • Include target multipiattaforma Kotlin aggiuntivi: watchos, tvos, linuxArm64. (b/352543988)

Versione 1.4.1

10 luglio 2024

androidx.collection:collection-*:1.4.1 viene rilasciata. La versione 1.4.1 contiene questi commit.

Correzioni di bug

  • Rimuovi i segnaposto eliminati dalla mappa/dal set durante il ridimensionamento. (7a996c5, b/345960092)

Versione 1.4.0

24 gennaio 2024

androidx.collection:collection-*:1.4.0 viene rilasciata. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

Sono state aggiunte nuove raccolte ad alta efficienza per l'archiviazione di primitive senza boxing:

  • MutableScatterMap e ScatterMap: classi con MutableMap e API simili a Maps
  • MutableScatterSet e ScatterSet: classi con MutableSet e API simili a Set
  • MutableObjectList e ObjectList - Classi con MutableList e API simili a elenchi

Ad esempio, una mappa con una chiave intera e un valore di tipo riferimento è un IntObjectMap<T>. Una mappa con una chiave lunga e un valore float è un LongFloatMap. Non esiste una versione con il nome ObjectObjectMap perché è coperta da ScatterMap/MutableScatterMap.

Versione 1.4.0-rc01

10 gennaio 2024

androidx.collection:collection-*:1.4.0-rc01 viene rilasciato senza modifiche. La versione 1.4.0-rc01 contiene questi commit.

Versione 1.4.0-beta02

29 novembre 2023

androidx.collection:collection-*:1.4.0-beta02 viene rilasciata. La versione 1.4.0-beta02 contiene questi commit.

Nuove funzionalità

  • Prestazioni migliorate di FloatFloatPair. (If5537)

Correzioni di bug

Versione 1.4.0-beta01

15 novembre 2023

androidx.collection:collection-*:1.4.0-beta01 viene rilasciata. La versione 1.4.0-beta01 contiene questi commit.

Correzioni di bug

  • Correzione per ListIterator che imposta erroneamente i valori in ObjectList, il che potrebbe causare un arresto anomalo dovuto a IndexOutOfBoundsException. (I3bd8a, b/307049391)

Versione 1.4.0-alpha02

18 ottobre 2023

androidx.collection:collection-*:1.4.0-alpha02 viene rilasciata. La versione 1.4.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stato aggiunto l'overload per put che restituisce il valore precedente quando viene sostituito a tutte le raccolte primitive, ad esempio FloatFloatMap.
  • Converti i metodi removeIf nelle raccolte primitive, ad esempio MutableFloatFloatMap, in incorporati. In questo modo, la lambda per removeIf non viene allocata.

Versione 1.4.0-alpha01

4 ottobre 2023

androidx.collection:collection-*:1.4.0-alpha01 viene rilasciata. La versione 1.4.0-alpha01 contiene questi commit.

Nuove funzionalità

Sono state aggiunte nuove raccolte ad alta efficienza con un basso overhead di allocazione e prestazioni elevate:

  • MutableScatterMap e ScatterMap: classi con MutableMap e API simili a Maps
  • MutableScatterSet e ScatterSet: classi con MutableSet e API simili a Set
  • MutableObjectList e ObjectList - Classi con MutableList e API simili a elenchi

Sono state aggiunte nuove raccolte ad alta efficienza per l'archiviazione di primitive senza boxing:

  • Mutable[Int|Float|Long]List - Classi con API simili a MutableList<Int|Float|Long>. Esiste anche la versione di sola lettura [Int|Float|Long]List. Ad esempio, i numeri interi possono essere contenuti in un IntList.
  • Mutable[Int|Float|Long]Set - Classi con API simili a MutableSet<Int|Float|Long>. Esiste anche la versione di sola lettura [Int|Float|Long]Set. Ad esempio, i numeri interi possono essere contenuti in un IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map - Classi con API simili a Mutable<Int|Float|Long,T, Int|Float|Long|T>. Esiste anche la versione di sola lettura [Int|Float|Long|Object][Int|Float|Long|Object]Map. Ad esempio, una mappa con una chiave intera e un valore di tipo riferimento è un IntObjectMap<T>. Una mappa con una chiave lunga e un valore float è un LongFloatMap. Non esiste una versione con il nome ObjectObjectMap perché è coperta da ScatterMap/MutableScatterMap.

Versione 1.3.0

Versione 1.3.0

4 ottobre 2023

androidx.collection:collection-*:1.3.0 viene rilasciata. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

  • Ora puoi utilizzare le raccolte nei progetti Kotlin Multiplatform. Tieni presente che i target non Android delle raccolte sono ancora sperimentali, ma abbiamo deciso di unire le versioni per semplificare la prova da parte degli sviluppatori.
  • Tutto il codice sorgente è stato migrato a Kotlin. Nell'ambito di questa modifica, molte API ora sono correttamente digitate per la nullità e alcuni membri privati del pacchetto sono diventati internal. Un elenco delle modifiche esatte è disponibile nelle note di rilascio secondarie per la versione 1.3.x riportate di seguito.
  • Oltre alla migrazione di Kotlin, collection-ktx è stato unito all'artefatto della raccolta principale. Puoi eliminare in sicurezza qualsiasi dipendenza da collection:collection-ktx a favore di collection:collection, poiché collection-ktx è ora vuoto.

Versione 1.3.0-rc01

6 settembre 2023

androidx.collection:collection-*:1.3.0-rc01 viene rilasciato senza modifiche. La versione 1.3.0-rc01 contiene questi commit.

Versione 1.3.0-beta01

9 agosto 2023

androidx.collection:collection-*:1.3.0-beta01 viene rilasciata. La versione 1.3.0-beta01 contiene questi commit.

Versione 1.3.0-alpha04

24 marzo 2023

androidx.collection:collection-*:1.3.0-alpha04 viene rilasciata.

Correzioni di bug

  • Sono stati rimossi i vincoli di dipendenza dagli artefatti Maven per risolvere un problema di build in Kotlin Native Targets (b/274786186, KT-57531).

Versione 1.3.0-alpha03

22 marzo 2023

androidx.collection:collection-*:1.3.0-alpha03 viene rilasciata. La versione 1.3.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Ora puoi utilizzare le raccolte nei progetti KMM. Tieni presente che i target non Android delle raccolte sono ancora sperimentali, ma abbiamo deciso di unire le versioni per semplificare la prova da parte degli sviluppatori.

Modifiche alle API

  • ArraySet ora implementa MutableCollections anziché AbstractMutableCollection per consentire un'implementazione più efficiente in termini di memoria di toArray (I1ac32)

Correzioni di bug

  • ArraySet.toArray è ora disponibile solo su JVM, in quanto è sempre stato incluso solo per la compatibilità con Java. Gli utenti Kotlin in genere devono utilizzare gli helper .toTypedArray di stdlib, che forniscono esattamente la stessa funzionalità con una maggiore sicurezza dei tipi. (I2c59b)

Versione 1.3.0-alpha02

27 luglio 2022

androidx.collection:collection:1.3.0-alpha02 e androidx.collection:collection-ktx:1.3.0-alpha02 vengono rilasciati. La versione 1.3.0-alpha02 contiene questi commit.

Modifiche alle API

  • SparseArrayCompat è ora disponibile per le piattaforme non JVM dall'artefatto comune (Ic9bd0, b/219589118, b/228347315)
  • CircularIntArray è ora disponibile per le piattaforme non JVM dall'artefatto comune (I3d8ef, b/228344943)
  • LongSparseArray è ora disponibile per le piattaforme non JVM dall'artefatto comune (I73149, b/228347315)

Versione 1.3.0-alpha01

29 giugno 2022

androidx.collection:collection:1.3.0-alpha01 e androidx.collection:collection-ktx:1.3.0-alpha01 vengono rilasciati. La versione 1.3.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Le estensioni collection-ktx sono state migrate nell'artefatto delle raccolte principali, androidx.collection:collection. Questa modifica rende le estensioni -ktx preesistenti accessibili agli utenti Kotlin senza richiedere la dipendenza -ktx, mantenendo comunque la compatibilità per gli utenti esistenti. La manutenzione di queste estensioni in un artefatto -ktx separato non è più vantaggiosa, poiché l'artefatto principale è stato spostato su Kotlin. (I6eef2)

Modifiche alle API

  • ArraySet ora estende AbstractMutableCollection e non implementa più direttamente l'interfaccia Collection. (If6da0, b/230860589)
  • ArraySet è stato convertito in Kotlin. A causa della digitazione più rigorosa, alcune chiamate Kotlin potrebbero non essere più compilate. (Id68c1, b/230860589)
    • Le seguenti chiamate hanno il tipo di argomento T, non T?:
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Le seguenti chiamate hanno il tipo restituito T?, non T!:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Le seguenti chiamate non sono più possibili da Kotlin:
      • set.toArray() - use set.toTypedArray()
      • set.toArray(array) - use set.forEachIndexed(array::set)
  • Combina il costruttore sovraccarico per SparseArrayCompat come argomento facoltativo per gli utenti Kotlin. (If8407, b/227474719)
  • Rimuovi la sintassi dell'operatore per SparseArrayCompat.get(key, defaultValue).. Tieni presente che ciò consente comunque la sintassi dell'operatore per .get(key), ma allinea meglio la superficie dell'API di SparseArrayCompat con le altre classi di questa libreria. (I9a38d)
  • Esegui la migrazione delle estensioni LongSparseArray nell'artefatto principale, androidx.collection:collection. Questa modifica rende le estensioni -ktx preesistenti accessibili agli utenti Kotlin senza richiedere la dipendenza -ktx, mantenendo comunque la compatibilità per gli utenti esistenti. La manutenzione di queste estensioni in un artefatto -ktx separato non è più vantaggiosa, poiché l'artefatto principale è stato spostato su Kotlin. (I8659a)
  • Converti LongSparseArray in Kotlin. Questa modifica aggiunge l'annullabilità esplicita ai suoi tipi, il che è una modifica compatibile a livello binario, ma potrebbe causare incompatibilità a livello di codice sorgente. In particolare: * .isEmpty non è più accessibile come proprietà, ma deve essere accessibile come chiamata di funzione in Kotlin - .isEmpty() (Idfd0f)
  • Converti SimpleArrayMap in Kotlin. Questa modifica introduce alcune modifiche incompatibili, a causa dell'interoperabilità Java-Kotlin e della possibilità di definire correttamente la nullità dei tipi nell'origine.
    • Le API private del pacchetto, .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull() e .indexOfValue(), sono state rese private. Tecnicamente si tratta di una modifica incompatibile a livello binario, ma riflette la visibilità prevista di questi campi ed è la soluzione più vicina che possiamo ottenere in Kotlin, poiché non include un modo per specificare la visibilità privata del pacchetto.
    • La nullità di alcuni tipi è ora definita correttamente. I metodi interessati sono: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • Per gli utenti Kotlin, .isEmpty() è ora disponibile solo come funzione anziché anche tramite l'accesso alle proprietà. (I271b7, b/182813986)
  • Converti CircularArray in Kotlin. Modifiche importanti:

    • Corregge l'annullabilità dei relativi generici in modo che non siano nulli, il che in precedenza era impossibile da dichiarare, ma era applicato in tutte le relative API pubbliche.
    • A causa dell'interoperabilità di Kotlin con Java, in precedenza era possibile accedere a determinati metodi sia come proprietà sia come funzioni. Tuttavia, per ridurre la duplicazione mantenendo la compatibilità binaria, è stato necessario rimuoverli, il che è una modifica incompatibile con l'origine. Le chiamate interessate sono: .isEmpty, .getLast() e .getFirst(). (Ifffac)
  • Converti CircularIntArray in Kotlin. Grazie all'interoperabilità di Kotlin con Java, in precedenza era possibile accedere a determinati metodi come proprietà o funzioni. Tuttavia, per ridurre la duplicazione mantenendo la compatibilità binaria, è stato necessario rimuoverli, il che rappresenta una modifica incompatibile con l'origine. Le chiamate interessate sono: .isEmpty, .getLast() e .getFirst(). (Ie36ce)

  • Converti LruCache in Kotlin (Ia2f19)

  • Converti SparseArrayCompat in Kotlin. (If6fe8)

    A SparseArrayCompat.valueAt() viene aggiunta una piccola modifica del comportamento, che non restituisce più erroneamente null per le chiamate non inizializzate al di fuori dei limiti di size(), ma all'interno della capacità iniziale fornita.

    Questa modifica introduce anche la corretta nullità per alcuni tipi che in precedenza non era presente.

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

Versione 1.2.0

Versione 1.2.0

1° dicembre 2021

androidx.collection:collection:1.2.0 e androidx.collection:collection-ktx:1.2.0 vengono rilasciati. La versione 1.2.0 contiene questi commit.

Modifiche importanti dalla versione 1.1.0

  • Aggiungi un costruttore di array a ArraySet. (Id7f19)
  • Rendi entrySet() conforme all'API implementando entrySet().toArray(), remove(), removeAll() e retainAll() e rimuovendo l'implementazione di entrySet().addAll() (I5d505)

Versione 1.2.0-rc01

17 novembre 2021

androidx.collection:collection:1.2.0-rc01 e androidx.collection:collection-ktx:1.2.0-rc01 vengono rilasciati. La versione 1.2.0-rc01 contiene questi commit.

Modifiche alle API

  • Nessuna modifica rispetto alla versione beta precedente.

Versione 1.2.0-beta01

13 ottobre 2021

androidx.collection:collection:1.2.0-beta01 e androidx.collection:collection-ktx:1.2.0-beta01 vengono rilasciati. La versione 1.2.0-beta01 contiene questi commit.

Correzioni di bug

  • Rendi entrySet() conforme all'API implementando entrySet().toArray(), remove(), removeAll() e retainAll() e rimuovendo l'implementazione di entrySet().addAll() (I5d505)

Versione 1.2.0-alpha01

16 dicembre 2020

androidx.collection:collection:1.2.0-alpha01 e androidx.collection:collection-ktx:1.2.0-alpha01 vengono rilasciati. La versione 1.2.0-alpha01 contiene questi commit.

Modifiche alle API

  • Aggiungi un costruttore di array a ArraySet. (Id7f19)

Versione 1.1.0

Versione 1.1.0

5 giugno 2019

androidx.collection:collection:1.1.0 e androidx.collection:collection-ktx:1.1.0 vengono rilasciati. I commit inclusi nella versione 1.1.0 sono disponibili qui.

Di seguito è riportato un riepilogo delle modifiche dalla versione 1.0.0 alla 1.1.0:

Nuove funzionalità

  • Utilizza un'implementazione più efficiente per le funzioni contains e isNotEmpty nell'artefatto "collection-ktx". (aosp/866529)

Modifiche all'API

  • Aggiungi putIfAbsent a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772608)
  • Aggiungi getOrDefault a SimpleArrayMap (aosp/772607)
  • Aggiungi remove con due argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat. Ritirare le estensioni KTX corrispondenti per questa funzionalità. (aosp/772482)
  • Aggiungi replace con due argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772483)
  • Aggiungi replace con tre argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772484)
  • Rendere obsoleti i metodi delete ridondanti. Il metodo remove offre la stessa API e funzionalità e corrisponde all'API utilizzata da Maps non specializzato. (aosp/866053)

Correzioni di bug

  • Modifica SimpleArrayMap per sincronizzare la cache globale interna degli array su SimpleArrayMap.class anziché su ArrayMap.class. In questo modo, se utilizzi solo SimpleArrayMap, ArrayMap può essere rimosso dagli strumenti di riduzione del codice. (aosp/934557)

Versione 1.1.0-rc01

7 maggio 2019

androidx.collection:collection:1.1.0-rc01 e androidx.collection:collection-ktx:1.1.0-rc01 vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.

Nuove funzionalità

  • Utilizza un'implementazione più efficiente per le funzioni contains e isNotEmpty nell'artefatto "collection-ktx". (aosp/866529)

Versione 1.1.0-beta01

3 aprile 2019

androidx.collection:collection:1.1.0-beta01 e androidx.collection:collection-ktx:1.1.0-beta01 vengono rilasciati. I commit inclusi in questa versione sono disponibili qui.

Modifiche all'API

  • Il metodo menzionato nelle note di rilascio di alpha03 come metodo con il valore @RestrictTo modificato è stato rimosso. Non è mai stata utilizzata da alcuna libreria AndroidX (ora o in passato) e non offriva funzionalità mancanti nell'API pubblica.

Correzioni di bug

  • Modifica SimpleArrayMap per sincronizzare la cache globale interna degli array su SimpleArrayMap.class anziché su ArrayMap.class. In questo modo, se utilizzi solo SimpleArrayMap, ArrayMap può essere rimosso dagli strumenti di riduzione del codice. (aosp/934557)

Versione 1.1.0-alpha03

13 marzo 2019

androidx.collection:collection:1.0.0-alpha03 e androidx.collection:collection-ktx:1.0.0-alpha03 vengono rilasciati. L'elenco completo dei commit inclusi in questa versione è disponibile qui.

Modifiche all'API

  • Un metodo su ArraySet precedentemente contrassegnato come @RestrictTo(LIBRARY_GROUP) è stato modificato in @RestrictTo(LIBRARY_GROUP_PREFIX). per supportare l'utilizzo storico da parte di altre librerie AndroidX che ora si trovano in ID gruppo Maven diversi. Questo metodo verrà reso pubblico o rimosso nella versione 1.1.0-alpha04 perché altre librerie AndroidX non devono ottenere API speciali che altri sviluppatori non hanno.

Versione 1.1.0-alpha02

30 gennaio 2019

androidx.collection:collection 1.1.0-alpha02 e androidx.collection:collection-ktx 1.1.0-alpha02 vengono rilasciati.

Modifiche all'API

  • Rendere obsoleti i metodi delete ridondanti. I metodi remove offrono la stessa API e funzionalità e corrispondono all'API utilizzata da Maps non specializzato. (aosp/866053)

Versione 1.1.0-alpha01

3 dicembre 2018

Modifiche all'API

  • Aggiungi putIfAbsent a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772608)
  • Aggiungi getOrDefault a SimpleArrayMap (aosp/772607)
  • Aggiungi remove con due argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat. Ritirare le estensioni KTX corrispondenti per questa funzionalità. (aosp/772482)
  • Aggiungi replace con due argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772483)
  • Aggiungi replace con tre argomenti a LongSparseArray, SimpleArrayMap e SparseArrayCompat (aosp/772484)