Koleksi

  
Mengurangi dampak memori dari collection berukuran kecil, baik yang baru maupun yang sudah ada.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
27 Agustus 2025 1.5.0 - - 1.6.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Collection, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

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

Untuk mengetahui informasi dependensi selengkapnya, lihat Menambahkan Dependensi Build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.6

Versi 1.6.0-alpha01

27 Agustus 2025

androidx.collection:collection-*:1.6.0-alpha01 dirilis. Versi 1.6.0-alpha01 berisi commit ini.

Perubahan API

  • Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan (Idb6b5)

Perbaikan Bug

  • Sebelumnya, SparseArrayCompat menampilkan null untuk valueAt dan keyAt saat meneruskan indeks yang berada dalam rentang yang dialokasikan, tetapi di luar rentang yang disisipkan 0..size -1. Seperti yang didokumentasikan, perilaku ini tidak pernah diharapkan dan berada di luar rentang input yang valid. Perubahan ini memperbaiki perilaku ini dengan menampilkan IndexOutOfBounds saat diberi indeks yang tidak valid. (I68453)

Kontribusi Eksternal

Terima kasih kepada Jake Wharton atas kontribusi berikut:

  • Menyelaraskan perilaku joinToString dengan koleksi platform dengan menambahkan pemisah sebelum dan akhiran setelah indikator pemangkasan saat membatasi elemen yang disertakan. (I1b7e8)
  • ScatterSet.hashCode tidak lagi mempertahankan diri dari rekursi (yaitu, set ditambahkan ke dirinya sendiri). Hal ini menyelaraskan perilakunya dengan ScatterMap, HashSet, dan set berbasis sebaran primitif (misalnya, LongSet). Perhatikan bahwa metode equals sudah rentan terhadap rekursi dan toString melindungi dari rekursi—kedua perilaku ini selaras dengan koleksi lainnya. (I9c84a)
  • Fungsi ScatterSet.retainAll kini inline untuk menghindari pembuatan instance lambda. (Ifa4b7)
  • ScatterSet.hashCode tidak lagi menggunakan kapasitasnya dalam penghitungan hash, sehingga memastikan konten yang sama tetapi kapasitas yang berbeda tetap menghasilkan nilai yang sama. (Ic863b)
  • IllegalStateException kini ditampilkan jika Anda memanggil remove() sebelum next() pada iterator koleksi keys, values, atau entries dari ScatterMap.asMap() atau ScatterSet.asSet(). Hal ini menyelaraskan perilakunya dengan perilaku peta dan set reguler. (I71694)

Versi 1.5

Versi 1.5.0

12 Maret 2025

androidx.collection:collection-*:1.5.0 dirilis. Versi 1.5.0 berisi commit ini.

Versi 1.5.0-rc01

26 Februari 2025

androidx.collection:collection-*:1.5.0-rc01 dirilis. Versi 1.5.0-rc01 berisi commit ini.

Versi 1.5.0-beta03

29 Januari 2025

androidx.collection:collection-*:1.5.0-beta03 dirilis. Versi 1.5.0-beta03 berisi commit ini.

Versi 1.5.0-beta02

15 Januari 2025

androidx.collection:collection-*:1.5.0-beta02 dirilis. Versi 1.5.0-beta02 berisi commit ini.

Versi 1.5.0-beta01

11 Desember 2024

androidx.collection:collection-*:1.5.0-beta01 dirilis. Versi 1.5.0-beta01 berisi commit ini.

Perubahan API

  • Menambahkan dukungan untuk target KMP watchosDeviceArm64 dan menargetkan kotlin 1.9 (Icf15d, b/364652024)

Versi 1.5.0-alpha06

13 November 2024

androidx.collection:collection-*:1.5.0-alpha06 dirilis. Versi 1.5.0-alpha06 berisi commit ini.

Perbaikan Bug

  • Memperbaiki error yang dapat terjadi di SieveCache dan OrderedScatterSet saat menambahkan banyak item yang menyebabkan konflik kunci berulang. (Iaaf3d, b/375607736)
  • Tambahkan target wasm ke library koleksi. (I66fe3, b/352722444)

Versi 1.5.0-alpha05

30 Oktober 2024

androidx.collection:collection-*:1.5.0-alpha05 dirilis. Versi 1.5.0-alpha05 berisi commit ini.

Versi 1.5.0-alpha04

16 Oktober 2024

androidx.collection:collection-*:1.5.0-alpha04 dirilis. Versi 1.5.0-alpha04 berisi commit ini.

Versi 1.5.0-alpha03

2 Oktober 2024

androidx.collection:collection-*:1.5.0-alpha03 dirilis. Versi 1.5.0-alpha03 berisi commit ini.

Perubahan API

  • Update versi Kotlin ke 1.9 (I1a14c)

Kontribusi Eksternal

  • Teruskan contains ke containsKey. Terima kasih, Jake Wharton. (I9362b)
  • Menambahkan pembuat penampung untuk koleksi khusus skalar. Terima kasih, Jake Wharton. (I13179)

Versi 1.5.0-alpha02

18 September 2024

androidx.collection:collection-*:1.5.0-alpha02 dirilis. Versi 1.5.0-alpha02 berisi commit ini.

Perubahan API

  • Menambahkan dukungan untuk target platform watchosDeviceArm64. (I1cc04, b/364652024)

Versi 1.5.0-alpha01

4 September 2024

androidx.collection:collection-*:1.5.0-alpha01 dirilis. Versi 1.5.0-alpha01 berisi commit ini.

Perubahan API

  • OrderedScatterSet adalah koleksi baru yang diurutkan dan bebas alokasi (Ic4178)
  • SieveCache adalah pengganti LruCache baru tanpa alokasi yang menawarkan karakteristik rasio hit yang lebih baik. (I50a17)
  • Mengekspos representasi internal packedValue untuk IntIntPair dan FloatFloatPair. (Ifeb75, b/331853566)
  • Menambahkan akses ke array konten dalam koleksi daftar. (I899d5, b/333903173)
  • Tambahkan DoubleList, struktur data seperti Daftar yang dioptimalkan untuk nilai Ganda. (Ia10d1, b/315127635)

Perbaikan Bug

  • Library Collections berpindah untuk menargetkan Kotlin 1.9 (I0782f)
  • Mengoptimalkan banyak koleksi agar lebih efisien. (Ic0566)

Versi 1.4

Versi 1.4.5

30 Oktober 2024

androidx.collection:collection-*:1.4.5 dirilis. Versi 1.4.5 berisi commit ini.

Versi 1.4.4

18 September 2024

androidx.collection:collection-*:1.4.4 dirilis. Versi 1.4.4 berisi commit ini.

Perbaikan Bug

  • Solusi ArrayIndexOutOfBounds saat mengurutkan koleksi kosong. (I65245)

Versi 1.4.3

7 Agustus 2024

androidx.collection:collection-*:1.4.3 dirilis. Versi 1.4.3 berisi commit ini.

Perbaikan Bug

  • Memperbaiki kerusakan yang dapat terjadi di ScatterMap, ScatterSet, dan varian primitifnya. (I38a4a, b/352560465)
  • Pengoptimalan performa. Khususnya:
    • Ganti panggilan ke check() dan required() dengan varian yang tidak menampilkan pengecualian inline. Hal ini mengurangi ukuran biner akhir dan yang lebih penting, mengurangi tekanan i-cache sedikit.
    • Peningkatan removeDeletedMarkers() dalam kumpulan data "scatter". Versi baru menghapus penanda yang dihapus sebanyak 8 penanda sekaligus dan melewati penulisan yang lebih mahal dalam prosesnya. (Ic0566)

Versi 1.4.2

24 Juli 2024

androidx.collection:collection-*:1.4.2 dirilis. Versi 1.4.2 berisi commit ini.

Fitur Baru

  • Menyertakan target Multiplatform Kotlin tambahan: watchos, tvos, linuxArm64. (b/352543988)

Versi 1.4.1

10 Juli 2024

androidx.collection:collection-*:1.4.1 dirilis. Versi 1.4.1 berisi commit ini.

Perbaikan Bug

  • Menghapus penanda yang dihapus dari Peta/Set saat mengubah ukuran. (7a996c5, b/345960092)

Versi 1.4.0

24 Januari 2024

androidx.collection:collection-*:1.4.0 dirilis. Versi 1.4.0 berisi commit ini.

Perubahan penting sejak versi 1.3.0

Koleksi efisiensi tinggi baru untuk menyimpan primitif tanpa boxing telah ditambahkan:

  • MutableScatterMap & ScatterMap - Class dengan MutableMap & API seperti peta
  • MutableScatterSet & ScatterSet - Class dengan MutableSet & API seperti Set
  • MutableObjectList & ObjectList - Class dengan MutableList & API seperti Daftar

Misalnya, peta dengan kunci bilangan bulat dan nilai jenis referensi adalah IntObjectMap<T>. Peta dengan kunci panjang dan nilai float adalah LongFloatMap. Tidak ada versi dengan nama ObjectObjectMap karena versi tersebut tercakup dalam ScatterMap/MutableScatterMap.

Versi 1.4.0-rc01

10 Januari 2024

androidx.collection:collection-*:1.4.0-rc01 dirilis tanpa perubahan. Versi 1.4.0-rc01 berisi commit ini.

Versi 1.4.0-beta02

29 November 2023

androidx.collection:collection-*:1.4.0-beta02 dirilis. Versi 1.4.0-beta02 berisi commit ini.

Fitur Baru

  • Peningkatan performa FloatFloatPair. (If5537)

Perbaikan Bug

Versi 1.4.0-beta01

15 November 2023

androidx.collection:collection-*:1.4.0-beta01 dirilis. Versi 1.4.0-beta01 berisi commit ini.

Perbaikan Bug

  • Perbaikan untuk ListIterator yang salah menyetel nilai di ObjectList yang dapat menyebabkan error karena IndexOutOfBoundsException. (I3bd8a, b/307049391)

Versi 1.4.0-alpha02

18 Oktober 2023

androidx.collection:collection-*:1.4.0-alpha02 dirilis. Versi 1.4.0-alpha02 berisi commit ini.

Perubahan API

  • Menambahkan overload untuk put yang menampilkan nilai sebelumnya saat diganti ke semua koleksi primitif, seperti FloatFloatMap.
  • Konversi metode removeIf pada koleksi primitif, seperti MutableFloatFloatMap menjadi inline. Hal ini memastikan bahwa lambda untuk removeIf tidak dialokasikan.

Versi 1.4.0-alpha01

4 Oktober 2023

androidx.collection:collection-*:1.4.0-alpha01 dirilis. Versi 1.4.0-alpha01 berisi commit ini.

Fitur Baru

Koleksi efisiensi tinggi baru telah ditambahkan yang memiliki overhead alokasi rendah dan performa tinggi:

  • MutableScatterMap & ScatterMap - Class dengan MutableMap & API seperti peta
  • MutableScatterSet & ScatterSet - Class dengan MutableSet & API seperti Set
  • MutableObjectList & ObjectList - Class dengan MutableList & API seperti Daftar

Koleksi efisiensi tinggi baru untuk menyimpan primitif tanpa boxing telah ditambahkan:

  • Mutable[Int|Float|Long]List - Class dengan API seperti MutableList<Int|Float|Long>. [Int|Float|Long]List hanya baca juga ada. Misalnya, bilangan bulat dapat disimpan dalam IntList.
  • Mutable[Int|Float|Long]Set - Class dengan API seperti MutableSet<Int|Float|Long>. [Int|Float|Long]Set hanya baca juga ada. Misalnya, bilangan bulat dapat disimpan dalam IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map - Class dengan API seperti Mutable<Int|Float|Long,T, Int|Float|Long|T>. [Int|Float|Long|Object][Int|Float|Long|Object]Map hanya baca juga ada. Misalnya, peta dengan kunci bilangan bulat dan nilai jenis referensi adalah IntObjectMap<T>. Peta dengan kunci panjang dan nilai float adalah LongFloatMap. Tidak ada versi dengan nama ObjectObjectMap karena versi tersebut tercakup dalam ScatterMap/MutableScatterMap.

Versi 1.3.0

Versi 1.3.0

4 Oktober 2023

androidx.collection:collection-*:1.3.0 dirilis. Versi 1.3.0 berisi commit berikut ini.

Perubahan penting sejak versi 1.2.0

  • Anda kini dapat menggunakan Koleksi di project Multiplatform Kotlin. Perhatikan bahwa target non-Android untuk Koleksi masih bersifat eksperimental, tetapi kami memutuskan untuk menggabungkan versi agar developer lebih mudah mencobanya.
  • Semua sumber telah dimigrasikan ke Kotlin. Sebagai bagian dari perubahan ini, banyak API kini diketik dengan benar untuk nullity dan beberapa anggota khusus paket telah menjadi internal. Daftar perubahan persisnya tersedia di catatan rilis kecil untuk 1.3.x di bawah.
  • Seiring dengan migrasi Kotlin, collection-ktx telah digabungkan dengan artefak koleksi utama. Anda dapat menghapus semua dependensi pada collection:collection-ktx dengan aman dan menggantinya dengan collection:collection karena collection-ktx kini kosong.

Versi 1.3.0-rc01

6 September 2023

androidx.collection:collection-*:1.3.0-rc01 dirilis tanpa perubahan. Versi 1.3.0-rc01 berisi commit ini.

Versi 1.3.0-beta01

9 Agustus 2023

androidx.collection:collection-*:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Versi 1.3.0-alpha04

24 Maret 2023

androidx.collection:collection-*:1.3.0-alpha04 dirilis.

Perbaikan Bug

  • Menghapus batasan dependensi dari artefak Maven untuk mengatasi masalah build di Target Native Kotlin (b/274786186, KT-57531).

Versi 1.3.0-alpha03

22 Maret 2023

androidx.collection:collection-*:1.3.0-alpha03 dirilis. Versi 1.3.0-alpha03 berisi commit ini.

Fitur Baru

  • Anda kini dapat menggunakan Koleksi di project KMM. Perhatikan bahwa target non-Android untuk Koleksi masih bersifat eksperimental, tetapi kami memutuskan untuk menggabungkan versi agar developer lebih mudah mencobanya.

Perubahan API

  • ArraySet kini menerapkan MutableCollections, bukan AbstractMutableCollection, untuk memungkinkan penerapan toArray yang lebih efisien dalam penggunaan memori (I1ac32)

Perbaikan Bug

  • ArraySet.toArray kini hanya tersedia di JVM karena selalu hanya disertakan untuk kompatibilitas dengan Java. Pengguna Kotlin umumnya harus menggunakan helper .toTypedArray stdlib, yang memberikan fungsi yang sama persis dengan keamanan jenis tambahan. (I2c59b)

Versi 1.3.0-alpha02

27 Juli 2022

androidx.collection:collection:1.3.0-alpha02 dan androidx.collection:collection-ktx:1.3.0-alpha02 dirilis. Versi 1.3.0-alpha02 berisi commit ini.

Perubahan API

Versi 1.3.0-alpha01

29 Juni 2022

androidx.collection:collection:1.3.0-alpha01 dan androidx.collection:collection-ktx:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

Fitur Baru

  • Ekstensi collection-ktx telah dimigrasikan ke artefak koleksi utama, androidx.collection:collection. Perubahan ini membuat ekstensi -ktx yang sudah ada dapat diakses oleh pengguna Kotlin tanpa memerlukan dependensi -ktx, sambil tetap mempertahankan kompatibilitas untuk pengguna yang ada. Mempertahankan ekstensi ini dalam artefak -ktx terpisah tidak lagi bermanfaat karena artefak utama telah dipindahkan ke Kotlin. (I6eef2)

Perubahan API

  • ArraySet sekarang memperluas AbstractMutableCollection dan tidak lagi secara langsung menerapkan antarmuka Collection. (If6da0, b/230860589)
  • ArraySet telah dikonversikan ke Kotlin. Karena pengetikan yang lebih ketat, beberapa panggilan Kotlin mungkin tidak lagi dikompilasi. (Id68c1, b/230860589)
    • Panggilan berikut memiliki jenis argumen T, bukan T?:
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • Panggilan berikut memiliki jenis nilai yang ditampilkan T?, bukan T!:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Panggilan berikut tidak lagi dapat dilakukan dari Kotlin:
      • set.toArray() - gunakan set.toTypedArray()
      • set.toArray(array) - gunakan set.forEachIndexed(array::set)
  • Menggabungkan konstruktor kelebihan beban untuk SparseArrayCompat sebagai argumen opsional bagi pengguna Kotlin. (If8407, b/227474719)
  • Menghapus sintaksis operator untuk SparseArrayCompat.get(key, defaultValue). Perlu diketahui bahwa hal ini masih memungkinkan sintaksis operator untuk .get(key), tetapi lebih menyelaraskan platform API SparseArrayCompat dengan class lain di library ini. (I9a38d)
  • Memigrasikan ekstensi LongSparseArray ke artefak utama, androidx.collection:collection. Perubahan ini membuat ekstensi -ktx yang sudah ada dapat diakses oleh pengguna Kotlin tanpa memerlukan dependensi -ktx, sambil tetap mempertahankan kompatibilitas untuk pengguna yang ada. Mempertahankan ekstensi ini dalam artefak -ktx terpisah tidak lagi bermanfaat karena artefak utama telah dipindahkan ke Kotlin. (I8659a)
  • Mengonversi LongSparseArray ke Kotlin. Perubahan ini menambahkan nullity eksplisit ke jenisnya, yang merupakan perubahan kompatibel biner, tetapi dapat menyebabkan sumber tidak kompatibel. Khususnya: * .isEmpty tidak dapat lagi diakses sebagai properti, properti tersebut harus diakses sebagai panggilan fungsi di Kotlin - .isEmpty() (Idfd0f)
  • Mengonversi SimpleArrayMap ke Kotlin. Perubahan ini memperkenalkan beberapa perubahan yang tidak kompatibel, sebagai hasil dari interop Java-Kotlin dan kemampuan untuk menentukan dengan benar jenis nullity dalam sumber.
    • API pribadi paket, .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull(), dan .indexOfValue(), dijadikan pribadi - secara teknis ini adalah perubahan tidak kompatibel biner, tetapi mencerminkan visibilitas yang diinginkan dari kolom ini, dan ini hasil paling mendekati yang dapat dicapai di Kotlin karena tidak menyertakan cara untuk menentukan visibilitas pribadi paket.
    • Nullity beberapa jenis sekarang ditentukan dengan benar, metode yang terpengaruh adalah: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • Untuk pengguna Kotlin, .isEmpty() kini hanya tersedia sebagai fungsi, bukan melalui akses properti. (I271b7, b/182813986)
  • Mengonversi CircularArray ke Kotlin. Perubahan penting:

    • Memperbaiki nullity generiknya menjadi non-null, yang sebelumnya tidak mungkin untuk dideklarasikan, tetapi diterapkan di semua API publiknya.
    • Karena interop Java Kotlin, sebelumnya telah dimungkinkan untuk mengakses metode tertentu sebagai properti atau fungsi. Namun, untuk mengurangi duplikasi sekaligus mempertahankan kompatibilitas biner, Anda perlu menghapusnya, yang merupakan perubahan yang tidak kompatibel dengan sumber. Panggilan yang terpengaruh adalah: .isEmpty, .getLast(), dan .getFirst(). (Ifffac)
  • Mengonversi CircularIntArray ke Kotlin. Karena interop Java Kotlin, sebelumnya telah dimungkinkan untuk mengakses metode tertentu sebagai properti atau fungsi. Namun, untuk mengurangi duplikasi sekaligus mempertahankan kompatibilitas biner, Anda perlu menghapusnya, yang merupakan perubahan yang tidak kompatibel dengan sumber. Panggilan yang terpengaruh adalah: .isEmpty, .getLast(), dan .getFirst(). (Ie36ce)

  • Mengonversi LruCache ke Kotlin (Ia2f19)

  • Mengonversi SparseArrayCompat ke Kotlin. (If6fe8)

    Perubahan kecil pada perilaku ditambahkan ke SparseArrayCompat.valueAt(), yang tidak lagi salah menampilkan null untuk panggilan tidak diinisialisasi yang di luar batasan size(), tetapi dalam kapasitas awal yang disediakan.

    Perubahan ini juga memasukkan nullity yang benar untuk beberapa jenis yang sebelumnya tidak ada.

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

Versi 1.2.0

Versi 1.2.0

1 Desember 2021

androidx.collection:collection:1.2.0 dan androidx.collection:collection-ktx:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan penting sejak 1.1.0

  • Menambahkan konstruktor array ke ArraySet. (Id7f19)
  • Menyesuaikan entrySet() agar mematuhi API dengan mengimplementasikan entrySet().toArray(), remove(), removeAll(), dan retainAll(), serta menghapus implementasi entrySet().addAll() (I5d505)

Versi 1.2.0-rc01

17 November 2021

androidx.collection:collection:1.2.0-rc01 dan androidx.collection:collection-ktx:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

Perubahan API

  • Tidak ada perubahan dari versi beta sebelumnya.

Versi 1.2.0-beta01

13 Oktober 2021

androidx.collection:collection:1.2.0-beta01 dan androidx.collection:collection-ktx:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

Perbaikan Bug

  • Menyesuaikan entrySet() agar mematuhi API dengan mengimplementasikan entrySet().toArray(), remove(), removeAll(), dan retainAll(), serta menghapus implementasi entrySet().addAll() (I5d505)

Versi 1.2.0-alpha01

16 Desember 2020

androidx.collection:collection:1.2.0-alpha01 dan androidx.collection:collection-ktx:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan konstruktor array ke ArraySet. (Id7f19)

Versi 1.1.0

Versi 1.1.0

5 Juni 2019

androidx.collection:collection:1.1.0 dan androidx.collection:collection-ktx:1.1.0 dirilis. Commit yang disertakan dalam versi 1.1.0 dapat dilihat di sini.

Berikut adalah ringkasan perubahan dari 1.0.0 hingga 1.1.0:

Fitur baru

  • Menggunakan implementasi yang lebih efisien untuk fungsi contains dan isNotEmpty dalam artefak 'collection-ktx'. (aosp/866529)

Perubahan API

  • Menambahkan putIfAbsent ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772608)
  • Menambahkan getOrDefault ke SimpleArrayMap (aosp/772607)
  • Menambahkan remove dua argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat. Menghentikan penggunaan ekstensi KTX yang terkait untuk fungsionalitas ini. (aosp/772482)
  • Menambahkan replace dua argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772483)
  • Menambahkan replace tiga argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772484 )
  • Menghentikan penggunaan metode delete yang redundan. Metode remove menawarkan API dan fungsionalitas yang sama serta cocok dengan API yang digunakan oleh Maps tak terspesialisasi. (aosp/866053)

Perbaikan bug

  • Mengubah SimpleArrayMap untuk menyinkronkan cache global internalnya yang terdiri dari array di SimpleArrayMap.class, bukan ArrayMap.class. Perubahan ini memastikan bahwa jika Anda hanya menggunakan SimpleArrayMap, ArrayMap dapat dihapus dengan alat penyingkatan kode. (aosp/934557)

Versi 1.1.0-rc01

7 Mei 2019

androidx.collection:collection:1.1.0-rc01 dan androidx.collection:collection-ktx:1.1.0-rc01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Menggunakan implementasi yang lebih efisien untuk fungsi contains dan isNotEmpty dalam artefak 'collection-ktx'. (aosp/866529)

Versi 1.1.0-beta01

3 April 2019

androidx.collection:collection:1.1.0-beta01 dan androidx.collection:collection-ktx:1.1.0-beta01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • Metode yang dalam catatan rilis alpha03 dikatakan mengalami perubahan nilai @RestrictTo telah dihapus. Metode tersebut tidak digunakan oleh library AndroidX mana pun (sekarang atau sebelumnya) dan tidak menawarkan fungsionalitas apa pun yang tidak disertakan dalam API publik.

Perbaikan bug

  • Mengubah SimpleArrayMap untuk menyinkronkan cache global internalnya yang terdiri dari array di SimpleArrayMap.class, bukan ArrayMap.class. Perubahan ini memastikan bahwa jika Anda hanya menggunakan SimpleArrayMap, ArrayMap dapat dihapus dengan alat penyingkatan kode. (aosp/934557)

Versi 1.1.0-alpha03

13 Maret 2019

androidx.collection:collection:1.0.0-alpha03 dan androidx.collection:collection-ktx:1.0.0-alpha03 dirilis. Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • Metode di ArraySet yang sebelumnya ditandai @RestrictTo(LIBRARY_GROUP) diubah ke @RestrictTo(LIBRARY_GROUP_PREFIX). Perubahan ini ditujukan untuk mendukung penggunaan sebelumnya oleh library AndroidX lain yang sekarang berada di ID grup Maven berbeda. Metode ini akan dipublikasikan atau dihapus dalam 1.1.0-alpha04 karena library AndroidX lainnya tidak boleh mendapatkan API khusus yang tidak dimiliki developer lain.

Versi 1.1.0-alpha02

30 Januari 2019

androidx.collection:collection 1.1.0-alpha02 dan androidx.collection:collection-ktx 1.1.0-alpha02 dirilis.

Perubahan API

  • Menghentikan penggunaan metode delete yang redundan. Metode remove menawarkan API dan fungsionalitas yang sama serta cocok dengan API yang digunakan oleh Maps tak terspesialisasi. (aosp/866053)

Versi 1.1.0-alpha01

3 Desember 2018

Perubahan API

  • Menambahkan putIfAbsent ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772608)
  • Menambahkan getOrDefault ke SimpleArrayMap (aosp/772607)
  • Menambahkan remove dua argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat. Menghentikan penggunaan ekstensi KTX yang terkait untuk fungsionalitas ini. (aosp/772482)
  • Menambahkan replace dua argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772483)
  • Menambahkan replace tiga argumen ke LongSparseArray, SimpleArrayMap, dan SparseArrayCompat (aosp/772484 )