कलेक्शन

  
छोटे साइज़ के मौजूदा और नए कलेक्शन के लिए, मेमोरी के इस्तेमाल को कम किया गया है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा वर्शन
27 अगस्त, 2025 1.5.0 - - 1.6.0-alpha01

डिपेंडेंसी का एलान करना

Collection पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google का मेवन डेटाबेस पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

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

Kotlin

dependencies {
    val collection_version = "1.5.0"
    implementation("androidx.collection:collection:$collection_version")
}

डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.6

वर्शन 1.6.0-alpha01

27 अगस्त, 2025

androidx.collection:collection-*:1.6.0-alpha01 रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है (Idb6b5)

गड़बड़ियां ठीक की गईं

  • इससे पहले, SparseArrayCompat में valueAt के लिए null और keyAt तब दिखता था, जब इंडेक्स को तय की गई रेंज में पास किया जाता था. हालांकि, यह इंडेक्स, डाली गई रेंज 0..size -1 से बाहर होता था. दस्तावेज़ के मुताबिक, इस तरह के व्यवहार की उम्मीद कभी नहीं की गई थी. साथ ही, यह मान्य इनपुट रेंज से बाहर है. इस बदलाव से, इस व्यवहार को ठीक किया गया है. अब अमान्य इंडेक्स पास करने पर, IndexOutOfBounds दिखेगा. (I68453)

बाहरी योगदान

इन योगदानों के लिए, Jake Wharton का धन्यवाद:

  • शामिल किए गए एलिमेंट की संख्या सीमित करते समय, ट्रंकेट किए गए एलिमेंट के इंडिकेटर से पहले सेपरेटर और बाद में पोस्टफ़िक्स जोड़कर, joinToString के व्यवहार को प्लैटफ़ॉर्म कलेक्शन के साथ अलाइन करें. (I1b7e8)
  • ScatterSet.hashCode अब रिकर्सन (यानी कि सेट को खुद में जोड़ा जा रहा है) से सुरक्षा नहीं करता है. इससे इसका व्यवहार ScatterMap, HashSet, और प्रिमिटिव स्कैटर-आधारित सेट (जैसे, LongSet). ध्यान दें कि equals तरीका पहले से ही रिकर्सन के लिए संवेदनशील था और toString इससे बचाव करता है. ये दोनों व्यवहार अन्य कलेक्शन के साथ अलाइन होते हैं. (I9c84a)
  • ScatterSet.retainAll फ़ंक्शन को अब इनलाइन कर दिया गया है, ताकि lambda इंस्टेंस न बनाया जा सके. (Ifa4b7)
  • ScatterSet.hashCode अब हैश कैलकुलेशन में अपनी क्षमता का इस्तेमाल नहीं करता है. इससे यह पक्का होता है कि कॉन्टेंट एक जैसा हो. हालांकि, अलग-अलग क्षमताओं से अब भी एक जैसी वैल्यू मिलती है. (Ic863b)
  • अगर ScatterMap.asMap() या ScatterSet.asSet() के keys, values या entries कलेक्शन के इटरेटर पर next() से पहले remove() को कॉल किया जाता है, तो अब IllegalStateException थ्रो किया जाता है. इससे, मैप और सेट किए गए व्यवहार के हिसाब से काम करने में मदद मिलती है. (I71694)

संस्‍करण 1.5

वर्शन 1.5.0

12 मार्च, 2025

androidx.collection:collection-*:1.5.0 रिलीज़ हो गया है. वर्शन 1.5.0 में ये कमिट शामिल हैं.

वर्शन 1.5.0-rc01

26 फ़रवरी, 2025

androidx.collection:collection-*:1.5.0-rc01 रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.5.0-beta03

29 जनवरी, 2025

androidx.collection:collection-*:1.5.0-beta03 रिलीज़ हो गया है. वर्शन 1.5.0-beta03 में ये कमिट शामिल हैं.

वर्शन 1.5.0-beta02

15 जनवरी, 2025

androidx.collection:collection-*:1.5.0-beta02 रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये कमिट शामिल हैं.

वर्शन 1.5.0-beta01

11 दिसंबर, 2024

androidx.collection:collection-*:1.5.0-beta01 रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • watchosDeviceArm64 KMP टारगेट और टारगेट Kotlin 1.9 (Icf15d, b/364652024) के लिए सहायता जोड़ी गई है

वर्शन 1.5.0-alpha06

13 नवंबर, 2024

androidx.collection:collection-*:1.5.0-alpha06 रिलीज़ हो गया है. वर्शन 1.5.0-alpha06 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • SieveCache और OrderedScatterSet में होने वाली क्रैश की समस्या को ठीक किया गया है. यह समस्या, कई आइटम जोड़ने पर होती थी. इससे बार-बार कुंजियों में टकराव होता था. (Iaaf3d, b/375607736)
  • wasm टारगेट को कलेक्शन लाइब्रेरी में जोड़ें. (I66fe3, b/352722444)

वर्शन 1.5.0-alpha05

30 अक्टूबर, 2024

androidx.collection:collection-*:1.5.0-alpha05 रिलीज़ हो गया है. वर्शन 1.5.0-alpha05 में ये कमिट शामिल हैं.

वर्शन 1.5.0-alpha04

16 अक्टूबर, 2024

androidx.collection:collection-*:1.5.0-alpha04 रिलीज़ हो गया है. वर्शन 1.5.0-alpha04 में ये कमिट शामिल हैं.

वर्शन 1.5.0-alpha03

2 अक्टूबर, 2024

androidx.collection:collection-*:1.5.0-alpha03 रिलीज़ हो गया है. वर्शन 1.5.0-alpha03 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Kotlin का वर्शन 1.9 (I1a14c) पर अपडेट किया गया

बाहरी योगदान

  • contains को containsKey पर फ़ॉरवर्ड करें. धन्यवाद, जैक व्हार्टन! (I9362b)
  • स्केलर-स्पेशलाइज़्ड कलेक्शन के लिए कंटेनर बिल्डर जोड़ें. धन्यवाद, जैक व्हार्टन! (I13179)

वर्शन 1.5.0-alpha02

18 सितंबर, 2024

androidx.collection:collection-*:1.5.0-alpha02 रिलीज़ हो गया है. वर्शन 1.5.0-alpha02 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • watchosDeviceArm64 प्लैटफ़ॉर्म को टारगेट करने की सुविधा जोड़ी गई. (I1cc04, b/364652024)

वर्शन 1.5.0-alpha01

4 सितंबर, 2024

androidx.collection:collection-*:1.5.0-alpha01 रिलीज़ हो गया है. वर्शन 1.5.0-alpha01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • OrderedScatterSet एक नया, क्रम से लगाया गया, बिना किसी शुल्क के ऐलोकेशन वाला कलेक्शन है (Ic4178)
  • SieveCache, LruCache की जगह इस्तेमाल किया जा सकता है. इसके लिए, किसी तरह का बंटवारा करने की ज़रूरत नहीं होती. साथ ही, इसमें हिट रेशियो की बेहतर सुविधाएं मिलती हैं. (I50a17)
  • IntIntPair और FloatFloatPair के लिए, packedValue का इंटरनल रेप्रज़ेंटेशन दिखाया गया. (Ifeb75, b/331853566)
  • सूची वाले कलेक्शन में कॉन्टेंट ऐरे का ऐक्सेस जोड़ा गया. (I899d5, b/333903173)
  • DoubleList जोड़ें. यह लिस्ट जैसा डेटा स्ट्रक्चर है, जिसे Double वैल्यू के लिए ऑप्टिमाइज़ किया गया है. (Ia10d1, b/315127635)

गड़बड़ियां ठीक की गईं

  • Collections लाइब्रेरी को Kotlin 1.9 (I0782f) पर ट्रांसफ़र किया जा रहा है
  • ज़्यादा बेहतर परफ़ॉर्मेंस के लिए, कई कलेक्शन ऑप्टिमाइज़ किए जाते हैं. (Ic0566)

वर्शन 1.4

वर्शन 1.4.5

30 अक्टूबर, 2024

androidx.collection:collection-*:1.4.5 रिलीज़ हो गया है. वर्शन 1.4.5 में ये कमिट शामिल हैं.

वर्शन 1.4.4

18 सितंबर, 2024

androidx.collection:collection-*:1.4.4 रिलीज़ हो गया है. वर्शन 1.4.4 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • खाली कलेक्शन को क्रम से लगाने के दौरान, ArrayIndexOutOfBounds समाधान. (I65245)

वर्शन 1.4.3

7 अगस्त, 2024

androidx.collection:collection-*:1.4.3 रिलीज़ हो गया है. वर्शन 1.4.3 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • ScatterMap, ScatterSet, और उनके प्रिमिटिव वैरिएंट में डेटा करप्ट होने की समस्या को ठीक किया गया है. (I38a4a, b/352560465)
  • परफ़ॉर्मेंस को ऑप्टिमाइज़ किया गया है. खास तौर पर:
    • check() और required() को ऐसे वैरिएंट से बदलें जो इनलाइन अपवादों को थ्रो नहीं करते. इससे फ़ाइनल बाइनरी का साइज़ कम हो जाता है. साथ ही, इससे i-cache पर पड़ने वाला दबाव भी थोड़ा कम हो जाता है.
    • कलेक्शन के "स्कैटर" फ़ैमिली में removeDeletedMarkers() को बेहतर बनाया गया है. नया वर्शन, एक बार में मिटाए गए आठ मार्कर हटा देता है. साथ ही, इस प्रोसेस में ज़्यादा खर्च वाले राइट ऑपरेशन को छोड़ देता है. (Ic0566)

वर्शन 1.4.2

24 जुलाई, 2024

androidx.collection:collection-*:1.4.2 रिलीज़ हो गया है. वर्शन 1.4.2 में ये कमिट शामिल हैं.

नई सुविधाएं

  • इसमें Kotlin Multiplatform के अतिरिक्त टारगेट शामिल हैं: watchos, tvos, linuxArm64. (b/352543988)

वर्शन 1.4.1

10 जुलाई, 2024

androidx.collection:collection-*:1.4.1 रिलीज़ हो गया है. वर्शन 1.4.1 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • आकार बदलते समय, मैप/सेट से मिटाए गए टॉम्बस्टोन हटाएं. (7a996c5, b/345960092)

वर्शन 1.4.0

24 जनवरी, 2024

androidx.collection:collection-*:1.4.0 रिलीज़ हो गया है. वर्शन 1.4.0 में ये कमिट शामिल हैं.

1.3.0 के बाद हुए अहम बदलाव

बिना बॉक्सिंग के प्रिमिटिव सेव करने के लिए, ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं:

  • MutableScatterMap और ScatterMap - MutableMap और मैप जैसे एपीआई वाली क्लास
  • MutableScatterSet और ScatterSet - MutableSet और Set-like API वाली क्लास
  • MutableObjectList और ObjectList - MutableList और List-like API वाली क्लास

उदाहरण के लिए, पूर्णांक कुंजी और रेफ़रंस टाइप वैल्यू वाला मैप, IntObjectMap<T> होता है. लंबी कुंजी और फ़्लोट वैल्यू वाला मैप, LongFloatMap होता है. ObjectObjectMap नाम का कोई वर्शन नहीं है, क्योंकि यह ScatterMap/MutableScatterMap के दायरे में आता है.

वर्शन 1.4.0-rc01

10 जनवरी, 2024

androidx.collection:collection-*:1.4.0-rc01 को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.4.0-beta02

29 नवंबर, 2023

androidx.collection:collection-*:1.4.0-beta02 रिलीज़ हो गया है. वर्शन 1.4.0-beta02 में ये कमिट शामिल हैं.

नई सुविधाएं

  • FloatFloatPair की परफ़ॉर्मेंस बेहतर हुई. (If5537)

गड़बड़ियां ठीक की गईं

  • ScatterMap.asMap() iterator अब नए इंस्टेंस दिखाता है (I28932, b/310365754)

वर्शन 1.4.0-beta01

15 नवंबर, 2023

androidx.collection:collection-*:1.4.0-beta01 रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • ListIterator में ObjectList में गलत तरीके से वैल्यू सेट करने की समस्या को ठीक किया गया है. इससे IndexOutOfBoundsException की वजह से क्रैश हो सकता था. (I3bd8a, b/307049391)

वर्शन 1.4.0-alpha02

18 अक्टूबर, 2023

androidx.collection:collection-*:1.4.0-alpha02 रिलीज़ हो गया है. वर्शन 1.4.0-alpha02 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • put के लिए जोड़ा गया ओवरलोड, जो सभी प्रिमिटिव कलेक्शन, जैसे कि FloatFloatMap में बदलने पर पिछली वैल्यू दिखाता है.
  • प्रिमिटिव कलेक्शन पर मौजूद removeIf तरीकों को इनलाइन में बदलें. जैसे, MutableFloatFloatMap. इससे यह पक्का होता है कि removeIf के लिए लैंबडा आवंटित नहीं किया गया है.

वर्शन 1.4.0-alpha01

4 अक्टूबर, 2023

androidx.collection:collection-*:1.4.0-alpha01 रिलीज़ हो गया है. वर्शन 1.4.0-alpha01 में ये कमिट शामिल हैं.

नई सुविधाएं

ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं. इनमें कम ओवरहेड होता है और इनकी परफ़ॉर्मेंस बेहतर होती है:

  • MutableScatterMap और ScatterMap - MutableMap और मैप जैसे एपीआई वाली क्लास
  • MutableScatterSet और ScatterSet - MutableSet और Set-like API वाली क्लास
  • MutableObjectList और ObjectList - MutableList और List-like API वाली क्लास

बिना बॉक्सिंग के प्रिमिटिव सेव करने के लिए, ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं:

  • Mutable[Int|Float|Long]List - MutableList<Int|Float|Long> जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए [Int|Float|Long]List भी मौजूद है. उदाहरण के लिए, पूर्णांकों को IntList में रखा जा सकता है.
  • Mutable[Int|Float|Long]Set - MutableSet<Int|Float|Long> जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए [Int|Float|Long]Set भी मौजूद है. उदाहरण के लिए, IntSet में पूर्णांक रखे जा सकते हैं.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map - Mutable<Int|Float|Long,T, Int|Float|Long|T> जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए [Int|Float|Long|Object][Int|Float|Long|Object]Map भी मौजूद है. उदाहरण के लिए, पूर्णांक कुंजी और रेफ़रंस टाइप वैल्यू वाला मैप, IntObjectMap<T> होता है. लंबी कुंजी और फ़्लोट वैल्यू वाला मैप, LongFloatMap होता है. ObjectObjectMap नाम का कोई वर्शन नहीं है, क्योंकि यह ScatterMap/MutableScatterMap के दायरे में आता है.

वर्शन 1.3.0

वर्शन 1.3.0

4 अक्टूबर, 2023

androidx.collection:collection-*:1.3.0 रिलीज़ हो गया है. वर्शन 1.3.0 में ये कमिट शामिल हैं.

1.2.0 के बाद हुए ज़रूरी बदलाव

  • अब Kotlin Multiplatform प्रोजेक्ट में Collections का इस्तेमाल किया जा सकता है. ध्यान दें कि Android के अलावा अन्य प्लैटफ़ॉर्म पर कलेक्शन की सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालाँकि, हमने वर्शन को मर्ज करने का फ़ैसला किया है, ताकि डेवलपर के लिए इन्हें आज़माना आसान हो.
  • पूरा सोर्स कोड Kotlin में माइग्रेट कर दिया गया है. इस बदलाव के तहत, कई एपीआई को अब शून्य के लिए सही तरीके से टाइप किया गया है. साथ ही, कुछ पैकेज के निजी सदस्यों को internal बना दिया गया है. 1.3.x के माइनर रिलीज़ नोट में, बदलावों की पूरी सूची यहां दी गई है.
  • Kotlin पर माइग्रेट करने के साथ-साथ, collection-ktx को मुख्य कलेक्शन आर्टफ़ैक्ट के साथ मर्ज कर दिया गया है. collection-ktx अब खाली है. इसलिए, collection:collection-ktx पर मौजूद किसी भी डिपेंडेंसी को collection:collection के पक्ष में सुरक्षित तरीके से हटाया जा सकता है.

वर्शन 1.3.0-rc01

6 सितंबर, 2023

androidx.collection:collection-*:1.3.0-rc01 को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.3.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.3.0-beta01

9 अगस्त, 2023

androidx.collection:collection-*:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये कमिट शामिल हैं.

वर्शन 1.3.0-alpha04

24 मार्च, 2023

androidx.collection:collection-*:1.3.0-alpha04 रिलीज़ हो गया है.

गड़बड़ियां ठीक की गईं

  • Kotlin Native Targets (b/274786186, KT-57531) में बिल्ड की समस्या को हल करने के लिए, Maven आर्टफ़ैक्ट से डिपेंडेंसी की पाबंदियां हटा दी गई हैं.

वर्शन 1.3.0-alpha03

22 मार्च, 2023

androidx.collection:collection-*:1.3.0-alpha03 रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये कमिट शामिल हैं.

नई सुविधाएं

  • अब KMM प्रोजेक्ट में, Collections का इस्तेमाल किया जा सकता है. ध्यान दें कि Android के अलावा अन्य प्लैटफ़ॉर्म पर कलेक्शन की सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालाँकि, हमने वर्शन को मर्ज करने का फ़ैसला किया है, ताकि डेवलपर इन्हें आसानी से आज़मा सकें.

एपीआई में हुए बदलाव

  • ArraySet अब AbstractMutableCollection के बजाय MutableCollections लागू करता है, ताकि toArray (I1ac32) को ज़्यादा मेमोरी के साथ लागू किया जा सके

गड़बड़ियां ठीक की गईं

  • ArraySet.toArray अब सिर्फ़ JVM पर उपलब्ध है, क्योंकि इसे हमेशा Java के साथ काम करने के लिए ही शामिल किया गया था. Kotlin का इस्तेमाल करने वाले लोगों को आम तौर पर stdlib के .toTypedArray हेल्पर का इस्तेमाल करना चाहिए. इससे टाइप की सुरक्षा के साथ-साथ, ठीक वही फ़ंक्शन मिलता है. (I2c59b)

वर्शन 1.3.0-alpha02

27 जुलाई, 2022

androidx.collection:collection:1.3.0-alpha02 और androidx.collection:collection-ktx:1.3.0-alpha02 रिलीज़ हो गए हैं. वर्शन 1.3.0-alpha02 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • SparseArrayCompat अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट (Ic9bd0, b/219589118, b/228347315) से उपलब्ध है
  • CircularIntArray अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट (I3d8ef, b/228344943) से उपलब्ध है
  • LongSparseArray अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट से उपलब्ध है (I73149, b/228347315)

वर्शन 1.3.0-alpha01

29 जून, 2022

androidx.collection:collection:1.3.0-alpha01 और androidx.collection:collection-ktx:1.3.0-alpha01 रिलीज़ हो गए हैं. वर्शन 1.3.0-alpha01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • collection-ktx एक्सटेंशन को मुख्य कलेक्शन आर्टफ़ैक्ट, androidx.collection:collection में माइग्रेट कर दिया गया है. इस बदलाव से, Kotlin का इस्तेमाल करने वाले लोग, पहले से मौजूद -ktx एक्सटेंशन को ऐक्सेस कर पाएंगे. इसके लिए, उन्हें -ktx डिपेंडेंसी की ज़रूरत नहीं होगी. साथ ही, मौजूदा उपयोगकर्ताओं के लिए अब भी यह सुविधा उपलब्ध रहेगी. इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखने से अब कोई फ़ायदा नहीं होता, क्योंकि मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. (I6eef2)

एपीआई में हुए बदलाव

  • ArraySet अब AbstractMutableCollection को बढ़ाता है और सीधे तौर पर Collection इंटरफ़ेस को लागू नहीं करता. (If6da0, b/230860589)
  • ArraySet को Kotlin में बदला गया. टाइपिंग की ज़्यादा पाबंदियों की वजह से, हो सकता है कि Kotlin के कुछ कॉल अब कंपाइल न हों. (Id68c1, b/230860589)
    • इन कॉल में, ऑर्ग्युमेंट का टाइप T है, न कि T?:
      • ArraySet<T>.contains(null)
      • ArraySet<T>.add(null)
      • ArraySet<T>.remove(null)
    • नीचे दिए गए कॉल का रिटर्न टाइप T? है, न कि T!:
      • ArraySet<T?>.valueAt(n)
      • ArraySet<T?>.removeAt(n)
      • ArraySet<T?>().iterator().next()
    • Kotlin से अब ये कॉल नहीं किए जा सकते:
      • set.toArray() - set.toTypedArray() का इस्तेमाल करें
      • set.toArray(array) - set.forEachIndexed(array::set) का इस्तेमाल करें
  • Kotlin का इस्तेमाल करने वाले लोगों के लिए, SparseArrayCompat के ओवरलोड किए गए कंस्ट्रक्टर को वैकल्पिक आर्ग्युमेंट के तौर पर जोड़ें. (If8407, b/227474719)
  • SparseArrayCompat.get(key, defaultValue). के लिए ऑपरेटर सिंटैक्स हटा दिया गया है ध्यान दें कि इससे .get(key) के लिए ऑपरेटर सिंटैक्स का इस्तेमाल अब भी किया जा सकता है. हालांकि, इससे SparseArrayCompat का एपीआई सर्फ़ेस, इस लाइब्रेरी की अन्य क्लास के साथ बेहतर तरीके से अलाइन हो जाता है. (I9a38d)
  • LongSparseArray एक्सटेंशन को मुख्य आर्टफ़ैक्ट, androidx.collection:collection में माइग्रेट किया गया. इस बदलाव से, Kotlin का इस्तेमाल करने वाले लोग, पहले से मौजूद -ktx एक्सटेंशन को ऐक्सेस कर पाएंगे. इसके लिए, उन्हें -ktx डिपेंडेंसी की ज़रूरत नहीं होगी. साथ ही, मौजूदा उपयोगकर्ताओं के लिए अब भी यह सुविधा उपलब्ध रहेगी. इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखने से अब कोई फ़ायदा नहीं होता, क्योंकि मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. (I8659a)
  • LongSparseArray को Kotlin में बदलें. इस बदलाव से, इसके टाइप में साफ़ तौर पर नल वैल्यू जोड़ी जाती है. यह बाइनरी के साथ काम करने वाला बदलाव है. हालांकि, इससे सोर्स से जुड़ी समस्याएं हो सकती हैं. खास तौर पर: * .isEmpty को अब प्रॉपर्टी के तौर पर ऐक्सेस नहीं किया जा सकता. इसे Kotlin में फ़ंक्शन कॉल के तौर पर ऐक्सेस किया जाना चाहिए - .isEmpty() (Idfd0f)
  • SimpleArrayMap को Kotlin में बदलें. इस बदलाव की वजह से, कुछ ऐसे बदलाव हुए हैं जो एक-दूसरे के साथ काम नहीं करते. ऐसा Java-Kotlin इंटरऑप और सोर्स में टाइप की नलिटी को सही तरीके से तय करने की वजह से हुआ है.
    • पैकेज प्राइवेट एपीआई, .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull(), और .indexOfValue() को प्राइवेट कर दिया गया है. तकनीकी तौर पर, यह बाइनरी के साथ काम न करने वाला बदलाव है. हालांकि, इससे इन फ़ील्ड की तय की गई विज़िबिलिटी दिखती है. साथ ही, Kotlin में इसे सबसे सही तरीके से लागू किया जा सकता है, क्योंकि इसमें पैकेज-प्राइवेट विज़िबिलिटी तय करने का कोई तरीका शामिल नहीं है.
    • अब कुछ टाइप के लिए, यह तय किया जा सकता है कि वैल्यू मौजूद है या नहीं. इन टाइप पर असर डालने वाले तरीके ये हैं: .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace.
    • Kotlin का इस्तेमाल करने वाले लोगों के लिए, .isEmpty() अब सिर्फ़ एक फ़ंक्शन के तौर पर उपलब्ध है. इसे प्रॉपर्टी ऐक्सेस के ज़रिए भी इस्तेमाल नहीं किया जा सकता. (I271b7, b/182813986)
  • CircularArray को Kotlin में बदलें. ध्यान देने लायक बदलाव:

    • यह अपने जेनेरिक की नल वैल्यू को नॉन-नल में बदलता है. पहले इसे नॉन-नल के तौर पर एलान नहीं किया जा सकता था. हालांकि, इसके सभी सार्वजनिक एपीआई में इसे लागू किया गया था.
    • Kotlin के Java इंटरऑप की वजह से, पहले कुछ तरीकों को प्रॉपर्टी और फ़ंक्शन, दोनों के तौर पर ऐक्सेस किया जा सकता था. हालांकि, बाइनरी कंपैटिबिलिटी बनाए रखते हुए डुप्लीकेट होने की समस्या को कम करने के लिए, इन्हें हटाना ज़रूरी था. यह सोर्स के साथ काम न करने वाला बदलाव है. इन कॉल पर असर पड़ा है: .isEmpty, .getLast(), और .getFirst(). (Ifffac)
  • CircularIntArray को Kotlin में बदलें. Kotlin के Java इंटरऑप की वजह से, पहले कुछ तरीकों को प्रॉपर्टी या फ़ंक्शन, दोनों के तौर पर ऐक्सेस किया जा सकता था. हालांकि, बाइनरी कंपैटिबिलिटी बनाए रखते हुए डुप्लीकेट होने की समस्या को कम करने के लिए, इन्हें हटाना ज़रूरी था. यह सोर्स के साथ काम न करने वाला बदलाव है. इन कॉल पर असर पड़ा है: .isEmpty, .getLast(), और .getFirst(). (Ie36ce)

  • LruCache को Kotlin (Ia2f19) में बदलें

  • SparseArrayCompat को Kotlin में बदलें. (If6fe8)

    SparseArrayCompat.valueAt() में थोड़ा बदलाव किया गया है. अब यह size() की सीमा से बाहर, लेकिन दी गई शुरुआती क्षमता के अंदर, बिना शुरू किए गए कॉल के लिए null को गलत तरीके से नहीं दिखाता है.

    इस बदलाव में, कुछ टाइप के लिए सही nullity भी शामिल की गई है, जो पहले मौजूद नहीं थी.

    • .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)

वर्शन 1.2.0

वर्शन 1.2.0

1 दिसंबर, 2021

androidx.collection:collection:1.2.0 और androidx.collection:collection-ktx:1.2.0 रिलीज़ हो गए हैं. वर्शन 1.2.0 में ये कमिट शामिल हैं.

1.1.0 के बाद हुए अहम बदलाव

  • ArraySet में एक ऐरे कंस्ट्रक्टर जोड़ें. (Id7f19)
  • entrySet().toArray(), remove(), removeAll(), और retainAll() को लागू करके, entrySet() को एपीआई के मुताबिक बनाएं. साथ ही, entrySet().addAll() (I5d505) को लागू करने की सुविधा हटाएं

वर्शन 1.2.0-rc01

17 नवंबर, 2021

androidx.collection:collection:1.2.0-rc01 और androidx.collection:collection-ktx:1.2.0-rc01 रिलीज़ हो गए हैं. वर्शन 1.2.0-rc01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • पिछले बीटा वर्शन के मुकाबले कोई बदलाव नहीं किया गया है.

वर्शन 1.2.0-beta01

13 अक्टूबर, 2021

androidx.collection:collection:1.2.0-beta01 और androidx.collection:collection-ktx:1.2.0-beta01 रिलीज़ हो गए हैं. वर्शन 1.2.0-beta01 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • entrySet().toArray(), remove(), removeAll(), और retainAll() को लागू करके, entrySet() को एपीआई के मुताबिक बनाएं. साथ ही, entrySet().addAll() (I5d505) को लागू करने की सुविधा हटाएं

वर्शन 1.2.0-alpha01

16 दिसंबर, 2020

androidx.collection:collection:1.2.0-alpha01 और androidx.collection:collection-ktx:1.2.0-alpha01 रिलीज़ हो गए हैं. वर्शन 1.2.0-alpha01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • ArraySet में एक ऐरे कंस्ट्रक्टर जोड़ें. (Id7f19)

वर्शन 1.1.0

वर्शन 1.1.0

5 जून, 2019

androidx.collection:collection:1.1.0 और androidx.collection:collection-ktx:1.1.0 रिलीज़ हो गए हैं. 1.1.0 वर्शन में शामिल कमिट यहां देखे जा सकते हैं.

वर्शन 1.0.0 से 1.1.0 में हुए बदलावों के बारे में यहां बताया गया है:

नई सुविधाएं

  • 'collection-ktx' आर्टफ़ैक्ट में contains और isNotEmpty फ़ंक्शन के लिए, ज़्यादा बेहतर तरीके से लागू करने की सुविधा का इस्तेमाल करें. (aosp/866529)

एपीआई में हुए बदलाव

  • putIfAbsent को LongSparseArray, SimpleArrayMap, और SparseArrayCompat में जोड़ें (aosp/772608)
  • getOrDefault को SimpleArrayMap में जोड़ें (aosp/772607)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला remove जोड़ें. इस सुविधा के लिए, KTX एक्सटेंशन को बंद कर दिया गया है. (aosp/772482)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला replace जोड़ें (aosp/772483)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में तीन आर्ग्युमेंट वाला replace जोड़ें (aosp/772484)
  • काम न करने वाली delete विधियों को बंद कर दिया गया है. remove तरीके में वही एपीआई और फ़ंक्शन उपलब्ध होते हैं. साथ ही, यह ऐसे एपीआई से मेल खाता है जिसका इस्तेमाल सामान्य मैप करते हैं. (aosp/866053)

गड़बड़ियां ठीक की गईं

  • SimpleArrayMap को बदलकर, ArrayMap.class के बजाय SimpleArrayMap.class पर ऐरे के इंटरनल ग्लोबल कैश को सिंक करें. इससे यह पक्का होता है कि अगर सिर्फ़ SimpleArrayMap का इस्तेमाल किया जा रहा है, तो कोड को छोटा करने वाले टूल की मदद से ArrayMap को हटाया जा सकता है. (aosp/934557)

वर्शन 1.1.0-rc01

7 मई, 2019

androidx.collection:collection:1.1.0-rc01 और androidx.collection:collection-ktx:1.1.0-rc01 रिलीज़ हो गए हैं. इस वर्शन में शामिल कमिट यहां देखे जा सकते हैं.

नई सुविधाएं

  • 'collection-ktx' आर्टफ़ैक्ट में contains और isNotEmpty फ़ंक्शन के लिए, ज़्यादा बेहतर तरीके से लागू करने की सुविधा का इस्तेमाल करें. (aosp/866529)

वर्शन 1.1.0-beta01

3 अप्रैल, 2019

androidx.collection:collection:1.1.0-beta01 और androidx.collection:collection-ktx:1.1.0-beta01 रिलीज़ हो गए हैं. इस वर्शन में शामिल कमिट यहां देखे जा सकते हैं.

एपीआई में हुए बदलाव

  • alpha03 के रिलीज़ नोट में जिस तरीके की @RestrictTo वैल्यू में बदलाव होने की बात कही गई थी उसे हटा दिया गया है. इसका इस्तेमाल, AndroidX की किसी भी लाइब्रेरी ने नहीं किया था. साथ ही, इसमें ऐसा कोई फ़ंक्शन नहीं था जो सार्वजनिक एपीआई में मौजूद न हो.

गड़बड़ियां ठीक की गईं

  • SimpleArrayMap को बदलकर, ArrayMap.class के बजाय SimpleArrayMap.class पर ऐरे के इंटरनल ग्लोबल कैश को सिंक करें. इससे यह पक्का होता है कि अगर सिर्फ़ SimpleArrayMap का इस्तेमाल किया जा रहा है, तो कोड को छोटा करने वाले टूल की मदद से ArrayMap को हटाया जा सकता है. (aosp/934557)

वर्शन 1.1.0-alpha03

13 मार्च, 2019

androidx.collection:collection:1.0.0-alpha03 और androidx.collection:collection-ktx:1.0.0-alpha03 रिलीज़ हो गए हैं. इस वर्शन में शामिल सभी कमिट की पूरी सूची यहां देखी जा सकती है.

एपीआई में हुए बदलाव

  • ArraySet पर मौजूद किसी तरीके को पहले @RestrictTo(LIBRARY_GROUP) के तौर पर मार्क किया गया था. अब उसे @RestrictTo(LIBRARY_GROUP_PREFIX) के तौर पर मार्क कर दिया गया है. ऐसा इसलिए किया गया है, ताकि AndroidX की अन्य लाइब्रेरी, इस पैकेज का इस्तेमाल कर सकें. ये लाइब्रेरी अब अलग-अलग मेवन ग्रुप आईडी में हैं. इस तरीके को 1.1.0-alpha04 में सार्वजनिक कर दिया जाएगा या हटा दिया जाएगा. ऐसा इसलिए, क्योंकि AndroidX की अन्य लाइब्रेरी को ऐसे खास एपीआई नहीं मिलने चाहिए जो अन्य डेवलपर को नहीं मिलते.

वर्शन 1.1.0-alpha02

30 जनवरी, 2019

androidx.collection:collection 1.1.0-alpha02 और androidx.collection:collection-ktx 1.1.0-alpha02 रिलीज़ हो गए हैं.

एपीआई में हुए बदलाव

  • काम न करने वाली delete विधियों को बंद कर दिया गया है. remove के तरीके, एक ही एपीआई और फ़ंक्शन की सुविधा देते हैं. साथ ही, यह ऐसे एपीआई से मेल खाता है जिसका इस्तेमाल सामान्य मैप करते हैं. (aosp/866053)

वर्शन 1.1.0-alpha01

3 दिसंबर, 2018

एपीआई में हुए बदलाव

  • putIfAbsent को LongSparseArray, SimpleArrayMap, और SparseArrayCompat में जोड़ें (aosp/772608)
  • getOrDefault को SimpleArrayMap में जोड़ें (aosp/772607)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला remove जोड़ें. इस सुविधा के लिए, KTX एक्सटेंशन को बंद कर दिया गया है. (aosp/772482)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला replace जोड़ें (aosp/772483)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में तीन आर्ग्युमेंट वाला replace जोड़ें (aosp/772484)