Koleksiyon

  
Küçük olan mevcut ve yeni koleksiyonların bellek üzerindeki etkisini azaltın.
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.

Yeni sorun oluşturma

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 ve IndexOutOfBoundsException nedeniyle kilitlenmeye yol açabilecek ListIterator 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 koleksiyonlarda removeIf 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 ve ScatterMap: MutableMap ve Harita benzeri API sınıfları
  • MutableScatterSet ve ScatterSet - MutableSet ve Set-like API sınıfları
  • MutableObjectList ve ObjectList: 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ılar IntList 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 harita IntObjectMap<T> olarak kabul edilir. Uzun bir anahtarı ve ondalık değeri olan harita, LongFloatMap sayılır. ScatterMap/MutableScatterMap kapsamında olduğundan ObjectObjectMap 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ğundan collection: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çin AbstractMutableCollection yerine MutableCollections 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ılabilir
  • CircularIntArray, 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ık AbstractMutableCollection 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ğil T? 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ı kullan
      • set.toArray(array) - set.forEachIndexed(array::set) alanını kullan
  • 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)
  • 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 şekilde null 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() ve retainAll() politikalarını uygulayıp entrySet().addAll() uygulamasını (I5d505) kaldırarak entrySet() 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() ve retainAll() politikalarını uygulayıp entrySet().addAll() uygulamasını (I5d505) kaldırarak entrySet() 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 ve isNotEmpty işlevleri için daha verimli bir uygulama kullanın. (aosp/866529)

API değişiklikleri

  • putIfAbsent uygulamasını LongSparseArray, SimpleArrayMap ve SparseArrayCompat uygulamalarına (aosp/772608) ekleyin
  • getOrDefault uygulamasını SimpleArrayMap alanına ekleyin (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için iki bağımsız remove değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için iki bağımsız değişken replace ekleyin (aosp/772483)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat 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 yerine SimpleArrayMap.class üzerinden senkronize etmek için SimpleArrayMap politikasını değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap 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 ve isNotEmpty 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 yerine SimpleArrayMap.class üzerinden senkronize etmek için SimpleArrayMap politikasını değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap 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 ve SparseArrayCompat uygulamalarına (aosp/772608) ekleyin
  • getOrDefault uygulamasını SimpleArrayMap alanına ekleyin (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için iki bağımsız remove değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için iki bağımsız değişken replace ekleyin (aosp/772483)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için üç bağımsız değişken ekleyin (aosp/772484)replace