Collection
Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
27 Juli 2022 | 1.2.0 | - | - | 1.3.0-alpha02 |
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.2.0" // Java language implementation implementation "androidx.collection:collection:$collection_version" // Kotlin implementation "androidx.collection:collection-ktx:$collection_version" }
Kotlin
dependencies { val collection_version = "1.2.0" // Java language implementation implementation("androidx.collection:collection:$collection_version") // Kotlin implementation("androidx.collection:collection-ktx:$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.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.3.0
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
SparseArrayCompat
kini tersedia untuk platform non-jvm dari artefak umum (Ic9bd0, b/219589118, b/228347315)CircularIntArray
kini tersedia untuk platform non-jvm dari artefak umum (I3d8ef, b/228344943)LongSparseArray
kini tersedia untuk platform non-jvm dari artefak umum (I73149, b/228347315)
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 memperluasAbstractMutableCollection
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
, bukanT?
:ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- Panggilan berikut memiliki jenis nilai yang ditampilkan
T?
, bukanT!
:ArraySet<T?>.valueAt(n)
ArraySet<T?>.removeAt(n)
ArraySet<T?>().iterator().next()
- Panggilan berikut tidak lagi dapat dilakukan dari Kotlin:
set.toArray()
- gunakanset.toTypedArray()
set.toArray(array)
- gunakanset.forEachIndexed(array::set)
- Panggilan berikut memiliki jenis argumen
- 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 APISparseArrayCompat
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)
- API pribadi paket,
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 menampilkannull
untuk panggilan tidak diinisialisasi yang di luar batasansize()
, 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 mengimplementasikanentrySet().toArray()
,remove()
,removeAll()
, danretainAll()
, serta menghapus implementasientrySet().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 mengimplementasikanentrySet().toArray()
,remove()
,removeAll()
, danretainAll()
, serta menghapus implementasientrySet().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
danisNotEmpty
dalam artefak 'collection-ktx'. (aosp/866529)
Perubahan API
- Menambahkan
putIfAbsent
keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772608) - Menambahkan
getOrDefault
keSimpleArrayMap
(aosp/772607) - Menambahkan
remove
dua argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
. Menghentikan penggunaan ekstensi KTX yang terkait untuk fungsionalitas ini. (aosp/772482) - Menambahkan
replace
dua argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772483) - Menambahkan
replace
tiga argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772484 ) - Menghentikan penggunaan metode
delete
yang redundan. Metoderemove
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 diSimpleArrayMap.class
, bukanArrayMap.class
. Perubahan ini memastikan bahwa jika Anda hanya menggunakanSimpleArrayMap
,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
danisNotEmpty
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 diSimpleArrayMap.class
, bukanArrayMap.class
. Perubahan ini memastikan bahwa jika Anda hanya menggunakanSimpleArrayMap
,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. Metoderemove
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
keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772608) - Menambahkan
getOrDefault
keSimpleArrayMap
(aosp/772607) - Menambahkan
remove
dua argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
. Menghentikan penggunaan ekstensi KTX yang terkait untuk fungsionalitas ini. (aosp/772482) - Menambahkan
replace
dua argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772483) - Menambahkan
replace
tiga argumen keLongSparseArray
,SimpleArrayMap
, danSparseArrayCompat
(aosp/772484 )