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ü
24 Temmuz 2024 1.4.2 - - -

Bağımlılıkları bildirme

Koleksiyona bağımlılık eklemek için belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin. uygulamanız veya modülünüz:

Eski

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

Kotlin

dependencies {
    val collection_version = "1.4.2"
    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 sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 1.4

Sürüm 1.4.2

24 Temmuz 2024

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

Yeni Özellikler

  • Ek Kotlin Çoklu Platform hedeflerini içerir: watchos, tvos, linuxArm64. (b/352543988)

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 şu kişilerin bulunduğu sınıflar: Harita benzeri API
  • MutableScatterSet ve ScatterSet - MutableSet ve şu kişilerin bulunduğu sınıflar: Set benzeri API
  • MutableObjectList ve ObjectList - MutableList ve şu kişilerin bulunduğu sınıflar: Liste benzeri API

Ö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 şu kişilerin bulunduğu sınıflar: Harita benzeri API
  • MutableScatterSet ve ScatterSet - MutableSet ve şu kişilerin bulunduğu sınıflar: Set benzeri API
  • MutableObjectList ve ObjectList - MutableList ve şu kişilerin bulunduğu sınıflar: Liste benzeri API

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ışı platformlar tarafından kullanılabilir (I3d8ef, b/228344943)
  • LongSparseArray artık ortak yapıdan Jvm dışı platformlar tarafından 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()
    • Aşağıdaki aramalar artık Kotlin'den 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(), oluşturuldu özel - bu, teknik olarak ikili uyumsuz bir değişikliktir, ancak bu alanların amaçlanan görünürlüğünü yansıtır ve mümkün kılar. Kotlin'de başarılı sonuçlar paket-gizli görünürlüğü.
    • Bazı türlerin boşluk değerleri artık doğru şekilde tanımlanmış; yöntemler: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • Kotlin kullanıcıları için .isEmpty(), artık yalnızca işlev olarak aynı zamanda mülk erişimi aracılığıyla da erişilebilir. (I271b7, b/182813986)
  • CircularArray öğesini Kotlin'e dönüştürün. Önemli değişiklikler:

    • Daha önce olduğu gibi, genel öğelerinin boşluğunu null olmayacak şekilde düzeltir olması zor olsa da herkese açık tüm API'lerinde zorunlu kılınmıştır.
    • Kotlin'in Java birlikte çalışması sayesinde hem özellik hem işlev olarak kullanabilirsiniz. Bununla birlikte, dönüşüm sayısını azaltmak için tekrarlanmaması ancak bununla birlikte ikili program uyumluluğu kaldırmanızı öneririz. Bu, kaynakla uyumlu olmayan bir değişikliktir. Etkilenen aramalar: .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() adlı reklama küçük bir davranış değişikliği eklendi. null, size() sınırında, ancak sağlanan başlangıç kapasitesinin altında.

    Bu değişiklik, aynı zamanda eksik olabilir.

    • .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" öğesinde contains ve isNotEmpty işlevleri için daha verimli bir uygulama kullanın tespit eder. (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" öğesinde contains ve isNotEmpty işlevleri için daha verimli bir uygulama kullanın tespit eder. (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 yayınlandı. Bu sürüme dahil olan kaydetme işlemlerinin tam listesini şu adreste bulabilirsiniz: 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. Bu, geçmişte yapılan tarafından kullanılıyor. Bu yöntemi herkese açık hale getirileceği veya 1.1.0-alpha04 üzerinden kaldırılacağı için AndroidX kitaplıkları, diğer geliştiricilerin almadığı özel API'leri almamalıdı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. 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)