Koleksiyon
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
24 Ocak 2024 | 1.4.0 | - | - | - |
Bağımlılıkları bildirme
Koleksiyona bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
dependencies { def collection_version = "1.4.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.4.0" implementation("androidx.collection:collection:$collection_version") }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme Bağımlılıkları Ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.4
Sürüm 1.4.0
24 Ocak 2024
androidx.collection:collection-*:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0'dan sonraki önemli değişiklikler
Temel öğeleri kutulama olmadan depolamak için yüksek verimli yeni koleksiyonlar eklendi:
MutableScatterMap
veScatterMap
-MutableMap
ve Harita benzeri API içeren sınıflarMutableScatterSet
veScatterSet
-MutableSet
ve Set Benzeri API içeren sınıflarMutableObjectList
veObjectList
-MutableList
ve Liste benzeri API içeren sınıflar
Örneğin, tamsayı anahtarı ve referans türü değeri olan bir harita IntObjectMap<T>
'dir. Uzun bir tuşu ve hareketli değeri olan bir harita LongFloatMap
şeklindedir. ScatterMap/MutableScatterMap
kapsamında olduğundan, ObjectObjectMap
adında sürüm yok.
Sürüm 1.4.0-rc01
10 Ocak 2024
androidx.collection:collection-*:1.4.0-rc01
, hiçbir değişiklik yapılmadan serbest bırakıldı. 1.4.0-rc01 sürümü bu kayıtları içerir.
Sürüm 1.4.0-beta02
29 Kasım 2023
androidx.collection:collection-*:1.4.0-beta02
yayınlandı. 1.4.0-beta02 sürümü bu kayıtları içerir.
Yeni Özellikler
FloatFloatPair
performansı iyileştirildi. (If5537)
Hata Düzeltmeleri
ScatterMap.asMap()
yineleyici artık yeni örnekler döndürüyor (I28932, b/310365754)
Sürüm 1.4.0-beta01
15 Kasım 2023
androidx.collection:collection-*:1.4.0-beta01
yayınlandı. 1.4.0-beta01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
ObjectList
öğesinde değerlerin yanlış ayarlanmasıylaIndexOutOfBoundsException
nedeniyle kilitlenmeye neden olabilecekListIterator
sorunu düzeltildi. (I3bd8a, b/307049391)
Sürüm 1.4.0-alpha02
18 Ekim 2023
androidx.collection:collection-*:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
put
için,FloatFloatMap
gibi tüm temel koleksiyonlarla değiştirildiğinde önceki değeri döndüren aşırı yükleme eklendi.- Temel koleksiyonlarda
removeIf
yöntemlerini (ör.MutableFloatFloatMap
) satır içine dönüştürün. Bu,removeIf
için lambda'nın ayrılmamasını sağlar.
Sürüm 1.4.0-alpha01
4 Ekim 2023
androidx.collection:collection-*:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
Ayırma ek yükü düşük ve performansı yüksek olan, yüksek verimli yeni koleksiyonlar eklendi:
MutableScatterMap
veScatterMap
-MutableMap
ve Harita benzeri API içeren sınıflarMutableScatterSet
veScatterSet
-MutableSet
ve Set Benzeri API içeren sınıflarMutableObjectList
veObjectList
-MutableList
ve Liste benzeri API içeren sınıflar
Temel öğeleri kutulama olmadan depolamak için yüksek verimli yeni koleksiyonlar eklendi:
Mutable[Int|Float|Long]List
-MutableList<Int|Float|Long>
benzeri API'ye sahip sınıflar. Salt okunur[Int|Float|Long]List
mevcut. Örneğin, tam sayılarIntList
içinde tutulabilir.Mutable[Int|Float|Long]Set
-MutableSet<Int|Float|Long>
benzeri API'ye sahip sınıflar. Salt okunur[Int|Float|Long]Set
mevcut. Örneğin, tam sayılar bir IntSet içinde tutulabilir.Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map
-Mutable<Int|Float|Long,T, Int|Float|Long|T>
benzeri API'ye sahip sınıflar. Salt okunur[Int|Float|Long|Object][Int|Float|Long|Object]Map
mevcut. Örneğin, tamsayı anahtarı ve referans türü değeri olan bir haritaIntObjectMap<T>
'dir. Uzun bir tuşu ve hareketli değeri olan bir haritaLongFloatMap
şeklindedir.ScatterMap/MutableScatterMap
kapsamında olduğundan,ObjectObjectMap
adında sürüm yok.
Sürüm 1.3.0
Sürüm 1.3.0
4 Ekim 2023
androidx.collection:collection-*:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0'dan sonraki önemli değişiklikler
- Artık Koleksiyonları Kotlin Çoklu Platform projelerinde kullanabilirsiniz. Koleksiyonların Android dışı hedefleri hâlâ deneysel olsa da, geliştiricilerin denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdik.
- Kaynağın tamamı Kotlin'e taşındı. Bu değişiklik kapsamında, birçok API artık null değeri için düzgün bir şekilde yazılıyor ve birkaç paket özel üyesi
internal
haline geldi. Tam değişikliklerin bir listesini aşağıdaki 1.3.x'in küçük sürüm notlarında bulabilirsiniz. collection-ktx
, Kotlin taşıma işlemiyle birlikte ana koleksiyon yapısıyla birleştirildi.collection-ktx
artık boş olduğundancollection:collection-ktx
üzerindeki bağımlılıklarıcollection:collection
yerine güvenle bırakabilirsiniz.
Sürüm 1.3.0-rc01
6 Eylül 2023
androidx.collection:collection-*:1.3.0-rc01
, hiçbir değişiklik yapılmadan serbest bırakıldı. 1.3.0-rc01 sürümü bu kayıtları içerir.
Sürüm 1.3.0-beta01
9 Ağustos 2023
androidx.collection:collection-*:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Sürüm 1.3.0-alpha04
24 Mart 2023
androidx.collection:collection-*:1.3.0-alpha04
yayınlandı.
Hata Düzeltmeleri
- Kotlin Yerel Hedeflerindeki bir derleme sorununu geçici olarak çözmek için Maven yapılarındaki bağımlılık kısıtlamaları kaldırıldı (b/274786186, KT-57531).
Sürüm 1.3.0-alpha03
22 Mart 2023
androidx.collection:collection-*:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
- Artık Koleksiyonları KMM projelerinde kullanabilirsiniz. Koleksiyonların Android dışı hedefleri hâlâ deneysel olsa da, geliştiricilerin denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdik.
API Değişiklikleri
ArraySet
,toArray
öğesinin (I1ac32) bellek açısından daha verimli bir şekilde uygulanması içinAbstractMutableCollection
yerineMutableCollections
yöntemini uyguluyor.
Hata Düzeltmeleri
ArraySet.toArray
her zaman sadece Java ile uyumluluk amacıyla eklendiğinden, artık yalnızca JVM'de kullanılabilir. Kotlin kullanıcıları genellikle bunun yerine stdlib'in.toTypedArray
yardımcılarını kullanmalıdır. Bu yardımcılar, ek tür güvenliği ile tam olarak aynı işlevi sağlar. (I2c59b)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.collection:collection:1.3.0-alpha02
ve androidx.collection:collection-ktx:1.3.0-alpha02
yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
SparseArrayCompat
, ortak yapıdaki (Ic9bd0, b/219589118, b/228347315) jvm dışındaki platformlarda kullanılabilirCircularIntArray
artık ortak yapıdaki jvm dışı platformlarda kullanılabilir (I3d8ef, b/228344943)LongSparseArray
, ortak yapıdaki jvm dışı platformlarda kullanılabilir (I73149, b/228347315)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.collection:collection:1.3.0-alpha01
ve androidx.collection:collection-ktx:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
collection-ktx
uzantı,androidx.collection:collection
adlı ana koleksiyon yapısına taşındı. Bu değişiklik, mevcut -ktx uzantılarını Kotlin kullanıcıları için -ktx bağımlılığına gerek kalmadan erişilebilir hale getirirken mevcut kullanıcılar için uyumluluğu korur. Ana yapı Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık avantajlı değildir. (I6eef2)
API Değişiklikleri
ArraySet
, artıkAbstractMutableCollection
kapsamını genişletiyor ve Koleksiyon arayüzünü doğrudan uygulamaıyor. (If6da0, b/230860589)ArraySet
, Kotlin'e dönüştürüldü. Daha sıkı yazma nedeniyle bazı Kotlin çağrıları artık derlenemiyor. (Id68c1, b/230860589)- Aşağıdaki çağrılar
T
bağımsız değişken türüne sahip (T?
değil):ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- Aşağıdaki çağrılar
T?
dönüş türünde (T!
değil):ArraySet<T?>.valueAt(n)
ArraySet<T?>.removeAt(n)
ArraySet<T?>().iterator().next()
- Artık Kotlin'den aşağıdaki aramalar yapılamıyor:
set.toArray()
-set.toTypedArray()
hesabını kullanset.toArray(array)
-set.forEachIndexed(array::set)
hesabını kullan
- Aşağıdaki çağrılar
SparseArrayCompat
için aşırı yüklenmiş oluşturucuyu, Kotlin kullanıcıları için isteğe bağlı bir bağımsız değişken olarak birleştirin. (If8407, b/227474719)SparseArrayCompat.get(key, defaultValue).
için operatör söz dizimini kaldır Bunun,.get(key)
için operatör söz dizimine izin vermeye devam ettiğini ancakSparseArrayCompat
API yüzeyini bu kitaplıktaki diğer sınıflarla daha iyi hizaladığını unutmayın. (I9a38d)LongSparseArray
uzantısını androidx.collection:collection içindeki ana yapıya taşıyın. Bu değişiklik, mevcut -ktx uzantılarını Kotlin kullanıcıları için -ktx bağımlılığına gerek kalmadan erişilebilir hale getirirken mevcut kullanıcılar için uyumluluğu korur. Ana yapı Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık avantajlı değildir. (I8659a)LongSparseArray
değerini Kotlin'e dönüştürün. Bu değişiklik, türlerine açık bir şekilde boş değer ekler. Bu, ikili programlarla uyumlu bir değişikliktir ancak kaynak uyumsuzluklarına neden olabilir. Özellikle: *.isEmpty
artık bir mülk olarak erişilebilir değil. Bu öğeye Kotlin -.isEmpty()
(Idfd0f) içinde bir işlev çağrısı olarak erişilmelidir.SimpleArrayMap
değerini Kotlin'e dönüştürün. Bu değişiklik, Java-Kotlin birlikte çalışma özelliği ve kaynakta boş türleri doğru şekilde tanımlayabilme özelliğinin bir sonucu olarak birkaç uyumsuz değişikliği beraberinde getirmektedir.- Özel API'ler (
.mSize
,.mArray
,.mHashes
,.indexOf()
,.indexOfNull()
ve.indexOfValue()
) gizli hale getirildi. Bu, teknik olarak ikili açıdan uyumsuz bir değişikliktir ancak bu alanların amaçlanan görünürlüğünü yansıtır ve pakete özel görünürlüğü belirtmenin bir yolunu içermediğinden Kotlin'de ulaşabileceğimiz en yakın metriktir. - Artık bazı türlerin nullitesi doğru şekilde tanımlandı. Bu durumdan etkilenen yöntemler şunlardır:
.getOrDefault
,.keyAt
,.valueAt
,.setValueAt
,.put
,.putIfAbsent
,.removeAt
,.replace
. - Kotlin kullanıcıları için
.isEmpty()
artık mülk erişimi yerine yalnızca bir işlev olarak kullanılabilir. (I271b7, b/182813986)
- Özel API'ler (
CircularArray
değerini Kotlin'e dönüştürün. Önemli değişiklikler:- Genel öğelerinin boş değerini null değerine düzeltir. Bu, daha önce bildirilmesi imkansızdı ancak tüm genel API'lerinde zorunlu kılındı.
- Kotlin'in Java birlikte çalışabilirlik özelliği sayesinde, önceden belirli yöntemlere hem özellik hem de işlev olarak erişmek mümkündü. Ancak ikili program uyumluluğunu korurken yinelemeyi azaltmak için kaynakla uyumsuz olan bu değişikliklerin kaldırılması gerekiyordu. Etkilenen aramalar:
.isEmpty
,.getLast()
ve.getFirst()
. (Ifffac)
CircularIntArray
değerini Kotlin'e dönüştürün. Kotlin'in Java birlikte çalışabilirlik özelliği sayesinde, önceden hem özellik hem de işlev olarak belirli yöntemlere erişmek mümkündü. Ancak, ikili program uyumluluğunu sürdürürken yinelemeleri azaltmak için kaynakla uyumsuz olan bu değişikliklerin kaldırılması gerekti. Etkilenen aramalar:.isEmpty
,.getLast()
ve.getFirst()
. (Ie36ce)LruCache
birimini Kotlin'e (Ia2f19) dönüştürSparseArrayCompat
değerini Kotlin'e dönüştürün. (If6fe8)SparseArrayCompat.valueAt()
özelliğine küçük bir davranış değişikliği eklenir. Bu değişiklik,size()
sınırları dışındaki başlatılmamış çağrılar için artık yanlışnull
değerini döndürmüyor, ancak sağlanan başlangıç kapasitesini kapsıyor.Bu değişiklik, daha önce eksik olan bazı türler için doğru null değerini de getirir.
.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)
Sürüm 1.2.0
Sürüm 1.2.0
1 Aralık 2021
androidx.collection:collection:1.2.0
ve androidx.collection:collection-ktx:1.2.0
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
1.1.0'dan sonraki önemli değişiklikler
ArraySet
öğesine bir dizi kurucu ekleyin. (Id7f19)entrySet().toArray()
,remove()
,removeAll()
veretainAll()
politikalarını uygulayarak veentrySet().addAll()
(I5d505) uygulamasını kaldırarakentrySet()
API'si ile uyumlu hale getirin
Sürüm 1.2.0-rc01
17 Kasım 2021
androidx.collection:collection:1.2.0-rc01
ve androidx.collection:collection-ktx:1.2.0-rc01
yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Önceki beta sürümünde değişiklik yok.
Sürüm 1.2.0-beta01
13 Ekim 2021
androidx.collection:collection:1.2.0-beta01
ve androidx.collection:collection-ktx:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
entrySet().toArray()
,remove()
,removeAll()
veretainAll()
politikalarını uygulayarak veentrySet().addAll()
(I5d505) uygulamasını kaldırarakentrySet()
API'si ile uyumlu hale getirin
Sürüm 1.2.0-alpha01
16 Aralık 2020
androidx.collection:collection:1.2.0-alpha01
ve androidx.collection:collection-ktx:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
ArraySet
öğesine bir dizi kurucu ekleyin. (Id7f19)
Sürüm 1.1.0
Sürüm 1.1.0
5 Haziran 2019
androidx.collection:collection:1.1.0
ve androidx.collection:collection-ktx:1.1.0
yayınlandı. 1.1.0 kapsamındaki kaydetmelere buradan ulaşabilirsiniz.
1.0.0 ile 1.1.0 arasındaki değişikliklerin özeti aşağıda verilmiştir:
Yeni özellikler
- "collection-ktx" yapısında
contains
veisNotEmpty
işlevleri için daha verimli bir uygulama kullanın. (aosp/866529)
API değişiklikleri
LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
(aosp/772608) öğelerineputIfAbsent
ekleyingetOrDefault
öğesiniSimpleArrayMap
alanına ekleyin (aosp/772607)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerineremove
bağımsız değişkenini ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerine (aosp/772483) iki bağımsız değişken ekleyin:replace
LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerine (aosp/772484) üç bağımsız değişken ekleyin:replace
- Gereksiz
delete
yöntemlerini kullanımdan kaldırın.remove
yöntemi, aynı API ve işlevleri sunar ve özelleştirilmemiş Haritalar tarafından kullanılan API ile eşleşir. (aosp/866053)
Hata düzeltmeleri
- Dizinlerin dahili genel önbelleğini
ArrayMap.class
yerineSimpleArrayMap.class
ile senkronize etmek içinSimpleArrayMap
politikasını değiştirin. Bu, yalnızcaSimpleArrayMap
kullanıyorsanızArrayMap
kodunun kod daraltma araçları tarafından kaldırılabilmesini sağlar. (aosp/934557)
Sürüm 1.1.0-rc01
7 Mayıs 2019
androidx.collection:collection:1.1.0-rc01
ve androidx.collection:collection-ktx:1.1.0-rc01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- "collection-ktx" yapısında
contains
veisNotEmpty
işlevleri için daha verimli bir uygulama kullanın. (aosp/866529)
Sürüm 1.1.0-beta01
3 Nisan 2019
androidx.collection:collection:1.1.0-beta01
ve androidx.collection:collection-ktx:1.1.0-beta01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
API değişiklikleri
- Alfa03 sürüm notlarında
@RestrictTo
değerinin değiştiği belirtilen yöntem kaldırıldı. Herhangi bir AndroidX kitaplığı tarafından (şu anda veya geçmişte) kullanılmıyordu ve genel API'da eksik olan herhangi bir işlev sunmuyordu.
Hata düzeltmeleri
- Dizinlerin dahili genel önbelleğini
ArrayMap.class
yerineSimpleArrayMap.class
ile senkronize etmek içinSimpleArrayMap
politikasını değiştirin. Bu, yalnızcaSimpleArrayMap
kullanıyorsanızArrayMap
kodunun kod daraltma araçları tarafından kaldırılabilmesini sağlar. (aosp/934557)
Sürüm 1.1.0-alpha03
13 Mart 2019
androidx.collection:collection:1.0.0-alpha03
ve
androidx.collection:collection-ktx:1.0.0-alpha03
yayınlandı.
Bu sürümdeki kaydetme işlemlerinin tam listesini burada bulabilirsiniz.
API değişiklikleri
ArraySet
üzerinde önceden@RestrictTo(LIBRARY_GROUP)
olarak işaretlenmiş bir yöntem@RestrictTo(LIBRARY_GROUP_PREFIX)
olarak değiştirildi. Bunun amacı, şu anda farklı Maven grup kimliklerinde bulunan diğer AndroidX kitaplıklarının geçmişte kullanımını desteklemektir. Diğer AndroidX kitaplıklarının diğer geliştiricilerin almadığı özel API'leri almaması gerektiği için bu yöntem herkese açık hale getirilecek veya 1.1.0-alpha04 sürümünde kaldırılacaktır.
Sürüm 1.1.0-alpha02
30 Ocak 2019
androidx.collection:collection 1.1.0-alpha02
ve
androidx.collection:collection-ktx 1.1.0-alpha02
yayınlandı.
API değişiklikleri
- Gereksiz
delete
yöntemlerini kullanımdan kaldırın.remove
yöntemleri aynı API ve işlevleri sunar ve özelleştirilmemiş Haritalar tarafından kullanılan API ile eşleşir. (aosp/866053)
Sürüm 1.1.0-alpha01
3 Aralık 2018
API değişiklikleri
LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
(aosp/772608) öğelerineputIfAbsent
ekleyingetOrDefault
öğesiniSimpleArrayMap
alanına ekleyin (aosp/772607)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerineremove
bağımsız değişkenini ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerine (aosp/772483) iki bağımsız değişken ekleyin:replace
LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
öğelerine (aosp/772484) üç bağımsız değişken ekleyin:replace