Koleksiyon

  
Küçük boyutlu 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ü
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.

Yeni sayı oluşturma

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 ve ScatterMap - MutableMap ve Harita benzeri API içeren sınıflar
  • MutableScatterSet ve ScatterSet - MutableSet ve Set Benzeri API içeren sınıflar
  • MutableObjectList ve ObjectList - 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ıyla IndexOutOfBoundsException nedeniyle kilitlenmeye neden olabilecek ListIterator 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 ve ScatterMap - MutableMap ve Harita benzeri API içeren sınıflar
  • MutableScatterSet ve ScatterSet - MutableSet ve Set Benzeri API içeren sınıflar
  • MutableObjectList ve ObjectList - 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ı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 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 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.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ğ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ı. 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çin AbstractMutableCollection yerine MutableCollections 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ılabilir
  • CircularIntArray 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ık AbstractMutableCollection 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ı kullan
      • set.toArray(array) - set.forEachIndexed(array::set) hesabını kullan
  • 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 ancak SparseArrayCompat 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)
  • 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ür

  • SparseArrayCompat 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() ve retainAll() politikalarını uygulayarak ve entrySet().addAll() (I5d505) uygulamasını kaldırarak entrySet() 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() ve retainAll() politikalarını uygulayarak ve entrySet().addAll() (I5d505) uygulamasını kaldırarak entrySet() 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 ve isNotEmpty işlevleri için daha verimli bir uygulama kullanın. (aosp/866529)

API değişiklikleri

  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat (aosp/772608) öğelerine putIfAbsent ekleyin
  • getOrDefault öğesini SimpleArrayMap alanına ekleyin (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat öğelerine remove 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 ve SparseArrayCompat öğelerine (aosp/772483) iki bağımsız değişken ekleyin: replace
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat öğ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 yerine SimpleArrayMap.class ile senkronize etmek için SimpleArrayMap politikasını değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap 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 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ş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 yerine SimpleArrayMap.class ile senkronize etmek için SimpleArrayMap politikasını değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap 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 ve SparseArrayCompat (aosp/772608) öğelerine putIfAbsent ekleyin
  • getOrDefault öğesini SimpleArrayMap alanına ekleyin (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat öğelerine remove 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 ve SparseArrayCompat öğelerine (aosp/772483) iki bağımsız değişken ekleyin: replace
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat öğelerine (aosp/772484) üç bağımsız değişken ekleyin: replace