Koleksiyon

  
Küçük boyutlu mevcut ve yeni koleksiyonların bellek üzerindeki etkisini azaltır.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
10 Temmuz 2024 1.4.1 - - -

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 veya modülünün build.gradle dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:

Modern

dependencies {
    def collection_version = "1.4.1"
    implementation "androidx.collection:collection:$collection_version"
}

Kotlin

dependencies {
    val collection_version = "1.4.1"
    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 bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.

Sürüm 1.4

Sürüm 1.4.1

10 Temmuz 2024

androidx.collection:collection-*:1.4.1 yayınlandı. Sürüm 1.4.1 bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yeniden boyutlandırırken silinmiş mezar taşlarını Harita/Set'ten kaldırın. (7a996c5, b/345960092)

Sürüm 1.4.0

24 Ocak 2024

androidx.collection:collection-*:1.4.0 yayınlandı. 1.4.0 sürümü bu kaydetmeleri içerir.

1.3.0'dan bu yana önemli değişiklikler

Temel öğeleri kutulamadan depolamak için yüksek verimli yeni koleksiyonlar eklendi:

  • MutableScatterMap ve ScatterMap - MutableMap ve Harita benzeri API kullanan 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, bir tam sayı anahtarı ve referans türü değeri içeren bir harita IntObjectMap<T>'dir. Uzun anahtarı ve kayan değeri olan bir harita LongFloatMap öğesidir. ScatterMap/MutableScatterMap kapsamında olduğu için 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 yayınlandı. Sürüm 1.4.0-rc01 bu kaydetmeleri içerir.

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 kaydetmeleri içerir.

Yeni Özellikler

  • FloatFloatPair performansı iyileştirildi. (If5537)

Hata Düzeltmeleri

  • ScatterMap.asMap() yinelemesi 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • IndexOutOfBoundsException nedeniyle kilitlenmeye neden olabilecek ObjectList için hatalı şekilde ayarlanmış ListIterator sorunuyla ilgili 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ı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • FloatFloatMap gibi tüm temel koleksiyonlarla değiştirildiğinde önceki değeri döndüren put için aşırı yük eklendi.
  • MutableFloatFloatMap gibi basit koleksiyonlarda removeIf yöntemlerini satır içi biçimine 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ı. 1.4.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

Daha düşük dağıtım yüküne ve yüksek performansa sahip, yüksek verimli yeni koleksiyonlar eklendi:

  • MutableScatterMap ve ScatterMap - MutableMap ve Harita benzeri API kullanan 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 kutulamadan 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 da mevcut. Örneğin, IntList hücresinde tam sayılar tutulabilir.
  • Mutable[Int|Float|Long]Set - MutableSet<Int|Float|Long> benzeri API'ye sahip sınıflar. Salt okunur [Int|Float|Long]Set da mevcut. Örneğin, bir IntSet'te tam sayılar 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 da mevcut. Örneğin, bir tam sayı anahtarı ve referans türü değeri içeren bir harita IntObjectMap<T>'dir. Uzun anahtarı ve kayan değeri olan bir harita LongFloatMap öğesidir. ScatterMap/MutableScatterMap kapsamında olduğu için 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 kaydetmeleri içerir.

1.2.0'dan bu yana önemli değişiklikler

  • Artık Koleksiyonları Kotlin Multiplatform projelerinde kullanabilirsiniz. Koleksiyonların Android dışı hedef sürümlerinin hâlâ deneme aşamasında olduğunu, ancak geliştiricilerin daha kolay denemesi için sürümleri birleştirmeye karar verdik.
  • Kaynağın tamamı Kotlin'e taşındı. Bu değişiklik kapsamında, artık birçok API'de null değeri olması için düzgün şekilde yazılmakta ve birkaç gizli paket üyesi internal haline gelmiştir. Tam değişikliklerin listesini aşağıdaki 1.3.x sürümünün alt sürüm notlarında bulabilirsiniz.
  • Kotlin'in taşınmasıyla birlikte collection-ktx, ana koleksiyon yapısıyla birleştirildi. collection-ktx artık boş olduğundan, collection:collection-ktx üzerinden her türlü bağımlılığı güvenle bırakıp collection:collection kullanabilirsiniz.

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 yayınlandı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.

Sürüm 1.3.0-beta01

9 Ağustos 2023

androidx.collection:collection-*:1.3.0-beta01 yayınlandı. Sürüm 1.3.0-beta01 bu kaydetmeleri 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 Hedeflerinde bir derleme sorununu çö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ı. 1.3.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Artık Koleksiyonları KMM projelerinde kullanabilirsiniz. Android dışı Koleksiyon hedeflerinin hâlâ deneme aşamasında olduğunu, ancak geliştiricilerin daha kolay denemesi için sürümleri birleştirmeye karar verdiğimizi unutmayın.

API Değişiklikleri

  • ArraySet, toArray öğesinin (I1ac32) bellek verimliliğinden daha yüksek bir şekilde uygulanmasını sağlamak için artık AbstractMutableCollection yerine MutableCollections uyguluyor.

Hata Düzeltmeleri

  • ArraySet.toArray her zaman yalnızca Java ile uyumluluk için 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, aynı işlevleri ek güvenlik türü ile 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 serbest bırakıldı. 1.3.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • SparseArrayCompat artık ortak yapıdaki (Ic9bd0, b/219589118, b/228347315) jvm dışı platformlar tarafından kullanılabilir
  • CircularIntArray artık ortak yapıdan Jvm dışı platformlara kullanılabilir (I3d8ef, b/228344943)
  • LongSparseArray artık 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 serbest bırakıldı. 1.3.0-alpha01 sürümü bu kaydetmeleri 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ı -ktx bağımlılığına gerek kalmadan Kotlin kullanıcıları için erişilebilir hale getiriyor. Ana eser Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık faydalı değildir. (I6eef2)

API Değişiklikleri

  • ArraySet, artık AbstractMutableCollection alanını genişletmektedir ve Koleksiyon arayüzünü doğrudan uygulamamaktadır. (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ın dönüş türü T! değil, T?:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Kotlin'den artık aşağıdaki aramalar yapılamamaktadır:
      • set.toArray() - set.toTypedArray() kullanın
      • set.toArray(array) - set.forEachIndexed(array::set) kullanın
  • Kotlin kullanıcıları için isteğe bağlı bir bağımsız değişken olarak SparseArrayCompat için aşırı yüklenmiş oluşturucuyu 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 olan ana yapıya taşıyın. Bu değişiklik, mevcut kullanıcılar için uyumluluğu korurken mevcut -ktx uzantılarını -ktx bağımlılığına gerek kalmadan Kotlin kullanıcıları için erişilebilir hale getiriyor. Ana eser Kotlin'e taşındığı için bu uzantıları ayrı bir -ktx yapısında tutmak artık faydalı değildir. (I8659a)
  • LongSparseArray öğesini Kotlin'e dönüştürün. Bu değişiklik, türlerine açık null değer ekler. Bu, ikili uyumlu bir değişikliktir ancak kaynak uyumsuzluklarına neden olabilir. Özellikle: * .isEmpty artık mülk olarak erişilebilir değil. Kotlin - .isEmpty() (Idfd0f) üzerinden işlev çağrısı olarak erişilmesi gerekiyor
  • SimpleArrayMap öğesini Kotlin'e dönüştürün. Bu değişiklik, Java-Kotlin birlikte çalışabilirliği ve kaynakta boş türlerin doğru şekilde tanımlanabilmesi nedeniyle birkaç uyumsuz değişikliğe yol açmaktadır.
    • Paket özel API'leri (.mSize, .mArray, .mHashes, .indexOf(), .indexOfNull() ve .indexOfValue()) gizli hale getirildi. Bu, teknik olarak ikili programlarla uyumsuz bir değişikliktir, ancak bu alanların amaçlanan görünürlüğünü yansıtır ve paket-gizli görünürlüğünü belirtmeye yönelik bir yöntem içermediği için Kotlin'de elde edebileceğimiz en yakın sonuçtur.
    • Artık bazı türlerin boşluğu düzgün şekilde tanımlanmış. 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 aracılığıyla değil, yalnızca işlev olarak kullanılabilmektedir. (I271b7, b/182813986)
  • CircularArray öğesini Kotlin'e dönüştürün. Önemli değişiklikler:

    • Genel öğelerinin boşluğunu null olmayacak şekilde düzeltir. Bu, daha önce bildirilmesi imkansızdı ancak tüm herkese açık API'lerinde zorunlu kılındı.
    • Kotlin'in Java ile birlikte çalışması 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şiklikleri kaldırmak gerekiyordu. Etkilenen çağrılar: .isEmpty, .getLast() ve .getFirst(). (Ifffac)
  • CircularIntArray öğesini Kotlin'e dönüştürün. Kotlin'in Java ile birlikte çalışması nedeniyle, önceden belirli yöntemlere hem özellik hem de işlev olarak erişmek mümkündü. Ancak ikili program uyumluluğunu korurken yinelemeleri azaltmak için kaynakla uyumsuz olan bu değişikliklerin kaldırılması gerekiyordu. Etkilenen aramalar: .isEmpty, .getLast() ve .getFirst(). (Ie36ce)

  • LruCache değerini Kotlin'e dönüştürün (Ia2f19)

  • SparseArrayCompat öğesini Kotlin'e dönüştürün. (If6fe8)

    SparseArrayCompat.valueAt() öğesine küçük bir davranış değişikliği eklendi. Bu değişiklik artık size() sınırları dışında ancak sağlanan başlangıç kapasitesi dahilinde başlatılmamış çağrılar için hatalı bir şekilde null değerini döndürmez.

    Bu değişiklik, daha önce eksik olan bazı türler için doğru null değeri 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 serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.

1.1.0'dan bu yana önemli değişiklikler

  • ArraySet öğesine bir dizi oluşturucu ekleyin. (Id7f19)
  • entrySet().toArray(), remove(), removeAll() ve retainAll() özelliklerini uygulayıp entrySet().addAll() (I5d505) uygulamasını kaldırarak entrySet() API 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 serbest bırakıldı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Önceki beta sürümüne göre 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 serbest bırakıldı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • entrySet().toArray(), remove(), removeAll() ve retainAll() özelliklerini uygulayıp entrySet().addAll() (I5d505) uygulamasını kaldırarak entrySet() API 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 serbest bırakıldı. Sürüm 1.2.0-alpha01 bu kaydetmeleri 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 serbest bırakıldı. 1.1.0 kapsamındaki kaydetme kayıtlarına buradan ulaşabilirsiniz.

1.0.0 ile 1.1.0 arasındaki değişiklikler aşağıda özetlenmiş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 adlı kullanıcılara putIfAbsent ekleyin (aosp/772608)
  • getOrDefault kitlesini SimpleArrayMap kampanyasına ekle (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat reklam gruplarına iki bağımsız remove bağımsız değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)
  • İki bağımsız değişkeni replace LongSparseArray, SimpleArrayMap ve SparseArrayCompat ekleyin (aosp/772483)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için üç bağımsız değişken replace ekleyin (aosp/772484)
  • Gereksiz delete yöntemlerini kullanımdan kaldırın. remove yöntemi aynı API'yi ve işlevleri sunar. Ayrıca, özel olmayan Haritalar tarafından kullanılan API'yle eşleşir. (aosp/866053)

Hata düzeltmeleri

  • Dizilerin dahili genel önbelleğini ArrayMap.class yerine SimpleArrayMap.class üzerinde senkronize etmek için SimpleArrayMap öğesini değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap öğesinin kod küçültme araçlarıyla 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

  • Alfa03 sürüm notlarında, @RestrictTo değerinin değiştiği için belirtilen yöntem kaldırılmıştır. Şu anda veya geçmişte herhangi bir AndroidX kitaplığı tarafından kullanılmıyordu ve herkese açık API'de olmayan herhangi bir işlev sunmuyordu.

Hata düzeltmeleri

  • Dizilerin dahili genel önbelleğini ArrayMap.class yerine SimpleArrayMap.class üzerinde senkronize etmek için SimpleArrayMap öğesini değiştirin. Bu, yalnızca SimpleArrayMap kullanıyorsanız ArrayMap öğesinin kod küçültme araçlarıyla 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 serbest bırakıldı. Bu sürüme dahil edilen taahhütlerin 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ı, artık farklı Maven grubu kimliklerinde bulunan diğer AndroidX kitaplıklarının geçmiş 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 serbest bırakıldı.

API değişiklikleri

  • Gereksiz delete yöntemlerini kullanımdan kaldırın. remove yöntemleri aynı API'yi ve işlevleri sunar. Ayrıca, özel olmayan Haritalar tarafından kullanılan API'yle eşleşir. (aosp/866053)

Sürüm 1.1.0-alpha01

3 Aralık 2018

API değişiklikleri

  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat adlı kullanıcılara putIfAbsent ekleyin (aosp/772608)
  • getOrDefault kitlesini SimpleArrayMap kampanyasına ekle (aosp/772607)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat reklam gruplarına iki bağımsız remove bağımsız değişkeni ekleyin. Bu işlev için ilgili KTX uzantılarını kullanımdan kaldırın. (aosp/772482)
  • İki bağımsız değişkeni replace LongSparseArray, SimpleArrayMap ve SparseArrayCompat ekleyin (aosp/772483)
  • LongSparseArray, SimpleArrayMap ve SparseArrayCompat için üç bağımsız değişken replace ekleyin (aosp/772484)