Koleksiyon
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
29 Kasım 2023 | 1.3.0 | - | 1.4.0-beta02 | - |
Bağımlılıkları bildirme
Koleksiyon'a 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 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.3.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.3.0" implementation("androidx.collection:collection:$collection_version") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme bölümüne bakın.
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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-beta02
29 Kasım 2023
androidx.collection:collection-*:1.4.0-beta02
yayınlandı. Sürüm 1.4.0-beta02 bu kayıtları içerir.
Yeni Özellikler
- FloatFloatPair
performansı iyileştirildi. (If5537)
Hata Düzeltmeleri
ScatterMap.asMap()
iterasyonu 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ı. Sürüm 1.4.0-beta01 bu kayıtları içerir.
Hata Düzeltmeleri
ObjectList
içinde yanlış ayarlanan veIndexOutOfBoundsException
nedeniyle kilitlenmeye yol açabilecekListIterator
sorunu için düzeltme yapıldı. (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.MutableFloatFloatMap
gibi temel koleksiyonlardaremoveIf
yöntemlerini satır içi olarak 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 yükü düşük ve performansı yüksek olan, yüksek verimli yeni koleksiyonlar eklendi:
MutableScatterMap
veScatterMap
:MutableMap
ve Harita benzeri API sınıflarıMutableScatterSet
veScatterSet
-MutableSet
ve Set-like API sınıflarıMutableObjectList
veObjectList
:MutableList
ve List benzeri API sınıfları
Temel öğeleri kutulama olmadan depolamak için yeni yüksek verimli koleksiyonlar eklendi:
Mutable[Int|Float|Long]List
:MutableList<Int|Float|Long>
benzeri API'ye sahip sınıflar. Salt okunur[Int|Float|Long]List
de 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
de mevcut. Örneğin, tam sayılar bir IntSet'te 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
de mevcut. Örneğin, tam sayı anahtarı ve başvuru türü değerine sahip bir haritaIntObjectMap<T>
olarak kabul edilir. Uzun bir anahtarı ve ondalık değeri olan harita,LongFloatMap
sayılır.ScatterMap/MutableScatterMap
kapsamında olduğundanObjectObjectMap
adında bir 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 sürümünden sonraki önemli değişiklikler
- Artık Koleksiyonları Kotlin Çoklu Platform projelerinde kullanabilirsiniz. Koleksiyonların Android dışı hedeflerinin hâlâ deneysel olduğunu belirtmek isteriz. Ancak, geliştiricilerin bunları denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdik.
- Kaynak tümüyle Kotlin'e taşındı. Bu değişiklik kapsamında, birçok API artık null değerine düzgün şekilde yazılmakta ve birkaç paket özel üye
internal
haline gelmiştir. Tam değişikliklerin bir listesini 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ı. Sürüm 1.3.0-rc01 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 derleme sorununa geçici çözüm getirmek için Maven yapılarındaki bağımlılık kısıtlamaları (b/274786186, KT-57531) kaldırıldı.
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 kaydetmeleri içerir.
Yeni Özellikler
- Artık Koleksiyonları KMM projelerinde kullanabilirsiniz. Koleksiyonların Android dışı hedeflerinin hâlâ deneysel olduğunu ancak geliştiricilerin bunları denemesini kolaylaştırmak için sürümleri birleştirmeye karar verdiğimizi belirtmek isteriz.
API Değişiklikleri
ArraySet
,toArray
(I1ac32) uygulamasının bellekte daha verimli bir şekilde uygulanması içinAbstractMutableCollection
yerineMutableCollections
yöntemini artık uyguluyor
Hata Düzeltmeleri
ArraySet.toArray
her zaman yalnızca Java ile uyumluluk amacıyla eklendiğinden, artık yalnızca JVM'de kullanılabilir. Kotlin kullanıcıları genellikle 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ı. 1.3.0-alpha02 sürümü bu kayıtları içerir.
API Değişiklikleri
SparseArrayCompat
, ortak yapıdaki (Ic9bd0, b/219589118, b/228347315) jvm dışı platformlarda kullanılabilirCircularIntArray
, ortak yapıdaki jvm dışı platformlarda kullanılabilir (I3d8ef, b/228344943)LongSparseArray
, ortak yapıdaki jvm dışındaki 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ı, ana koleksiyon yapısına (androidx.collection:collection
) taşındı. Bu değişiklik, mevcut kullanıcılar için uyumluluğu korurken mevcut -ktx uzantılarını Kotlin kullanıcıları için -ktx bağımlılığı olmadan erişilebilir hale getirir. Ana yapı Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık faydalı değil. (I6eef2)
API Değişiklikleri
ArraySet
, artıkAbstractMutableCollection
kapsamını genişletir ve artık Koleksiyon arayüzünü doğrudan uygulamaz. (If6da0, b/230860589)ArraySet
, Kotlin'e dönüştürüldü. Daha sıkı yazma nedeniyle bazı Kotlin çağrıları artık derlenemeyebilir. (Id68c1, b/230860589)- Aşağıdaki çağrılar
T?
değil,T
bağımsız değişken türüne sahip:ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- Aşağıdaki çağrılar
T!
değilT?
dönüş türüne sahip: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()
alanını kullanset.toArray(array)
-set.forEachIndexed(array::set)
alanı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ı 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.get(key)
SparseArrayCompat
(I9a38d)LongSparseArray
uzantıyı androidx.collection:collection ana yapıya taşıyın. Bu değişiklik, mevcut kullanıcılar için uyumluluğu korurken mevcut -ktx uzantılarını Kotlin kullanıcıları için -ktx bağımlılığı olmadan erişilebilir hale getirir. Ana yapı Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık faydalı değil. (I8659a)LongSparseArray
değerini Kotlin'e dönüştürün. Bu değişiklik, türlerine açık bir null (boşluk) ekler. Bu, ikili program ile uyumlu bir değişikliktir ancak kaynak uyumsuzluklarına neden olabilir. Özellikle: *.isEmpty
mülküne artık mülk olarak erişilemiyor. Bu öğeye Kotlin -.isEmpty()
içinde bir işlev çağrısı olarak erişilmelidir (Idfd0f)SimpleArrayMap
değerini Kotlin'e dönüştürün. Bu değişiklik, Java-Kotlin birlikte çalışabilirliği ve kaynakta türlerin geçersizliğini doğru tanımlayabilmenin sonucu olarak uyumsuz birkaç değişikliğe yol açıyor.- Paketteki özel API'ler (
.mSize
,.mArray
,.mHashes
,.indexOf()
,.indexOfNull()
ve.indexOfValue()
) gizli hale getirildi. Bu, teknik olarak ikili program ile 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üğü belirten bir yöntem içermediğinden, Kotlin'de elde edebileceğimiz en yakın sonuçtur. - Bazı türlerin geçersizliği artık doğru bir şekilde tanımlanmıştır. 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)
- Paketteki özel API'ler (
CircularArray
değerini Kotlin'e dönüştürün. Önemli değişiklikler:- Genel öğelerinin null değerini, null olmayan bir değer olacak şekilde düzeltir. Bu işlem daha önce bildirilememiş olsa da genel API'lerinin tümünde zorunlu kılınmıştır.
- 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 sürdürürken tekrarı 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 tekrarı azaltmak için, kaynakla uyumsuz olan bu değişikliklerin kaldırılması gerekiyordu. Etkilenen aramalar:.isEmpty
,.getLast()
ve.getFirst()
. (Ie36ce)LruCache
birimini Kotlin'e dönüştürün (Ia2f19)SparseArrayCompat
değerini Kotlin'e dönüştürün. (If6fe8)SparseArrayCompat.valueAt()
öğesine küçük bir davranış değişikliği eklendi. Bu değişiklik,size()
sınırları dışında başlatılmamış çağrılar için artık yanlış bir şekildenull
döndürmeyecek ancak sağlanan başlangıç kapasitesini aşmayacak.Bu değişiklik, daha önce eksik olan bazı türler için doğru null değerini de sunar.
.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 sürümünden sonraki önemli değişiklikler
ArraySet
öğesine bir dizi oluşturucu ekleyin. (Id7f19)entrySet().toArray()
,remove()
,removeAll()
veretainAll()
politikalarını uygulayıpentrySet().addAll()
uygulamasını (I5d505) kaldırarakentrySet()
API 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ı. Sürüm 1.2.0-rc01 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ı. Sürüm 1.2.0-beta01 bu kayıtları içerir.
Hata Düzeltmeleri
entrySet().toArray()
,remove()
,removeAll()
veretainAll()
politikalarını uygulayıpentrySet().addAll()
uygulamasını (I5d505) kaldırarakentrySet()
API 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 oluşturucu 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 kaydetmeleri burada bulabilirsiniz.
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
putIfAbsent
uygulamasınıLongSparseArray
,SimpleArrayMap
veSparseArrayCompat
uygulamalarına (aosp/772608) ekleyingetOrDefault
uygulamasınıSimpleArrayMap
alanına ekleyin (aosp/772607)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için iki bağımsızremove
değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için iki bağımsız değişkenreplace
ekleyin (aosp/772483)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için üç bağımsız değişken ekleyin (aosp/772484)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
- Dizilerin dahili genel önbelleğini
ArrayMap.class
yerineSimpleArrayMap.class
üzerinden senkronize etmek içinSimpleArrayMap
politikasını değiştirin. Bu, yalnızcaSimpleArrayMap
kullanıyorsanızArrayMap
politikasının 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ştirildiğ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'de eksik olan hiçbir işlevi sunmuyordu.
Hata düzeltmeleri
- Dizilerin dahili genel önbelleğini
ArrayMap.class
yerineSimpleArrayMap.class
üzerinden senkronize etmek içinSimpleArrayMap
politikasını değiştirin. Bu, yalnızcaSimpleArrayMap
kullanıyorsanızArrayMap
politikasının 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üme dahil edilen kaydetmelerin tam listesini burada bulabilirsiniz.
API değişiklikleri
ArraySet
sitesinde önceden@RestrictTo(LIBRARY_GROUP)
olarak işaretlenmiş olan bir yöntem@RestrictTo(LIBRARY_GROUP_PREFIX)
olarak değiştirildi. Bu özellik, artık farklı Maven grup kimliklerinde bulunan diğer AndroidX kitaplıklarının geçmişte kullanımını desteklemek içindir. Bu yöntem herkese açık hale getirilecek veya diğer AndroidX kitaplıklarının diğer geliştiricilerin almadığı özel API'leri almaması gerektiği için 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
putIfAbsent
uygulamasınıLongSparseArray
,SimpleArrayMap
veSparseArrayCompat
uygulamalarına (aosp/772608) ekleyingetOrDefault
uygulamasınıSimpleArrayMap
alanına ekleyin (aosp/772607)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için iki bağımsızremove
değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için iki bağımsız değişkenreplace
ekleyin (aosp/772483)LongSparseArray
,SimpleArrayMap
veSparseArrayCompat
için üç bağımsız değişken ekleyin (aosp/772484)replace