कलेक्शन

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

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

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

अपने ऐप्लिकेशन या मॉड्यूल के लिए, 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-beta01

14 जनवरी, 2026

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

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

  • .toScatterSet() और .toScatterMap() एक्सटेंशन जोड़े गए. ये, कन्वर्ज़न फ़ंक्शन में बदलाव करने की सुविधा के लिए, रीड-ओनली विकल्प उपलब्ध कराते हैं. साथ ही, सोर्स कलेक्शन खाली होने पर, बिना किसी बंटवारे के सिंगलटन दिखाते हैं. (I1769a, b/459867876)
  • MutableScatterMap(source) और MutableScatterSet(source) स्यूडो-कंस्ट्रक्टर को स्टैंडर्ड .toMutableScatterMap() और .toMutableScatterSet() एक्सटेंशन फ़ंक्शन से बदलें. यह कलेक्शन कन्वर्ज़न के लिए, Kotlin के नियमों के मुताबिक है. (Ic9ca6, b/459867876)
  • MutableScatterMap(Map) और MutableScatterSet(Set) फ़ैक्ट्री फ़ंक्शन जोड़े गए. इन फ़ंक्शन का इस्तेमाल करके, आसानी से ऐसा स्कैटर कलेक्शन बनाया जा सकता है जिसमें मौजूदा कलेक्शन का कॉन्टेंट पहले से भरा हुआ हो. (I51d70)

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

  • यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए: -Xjspecify-annotations=strict (यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है) (I05181, b/326456246)

वर्शन 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)

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

  • इससे पहले, valueAt के लिए SparseArrayCompat, null दिखाता था. साथ ही, जब कोई ऐसा इंडेक्स पास किया जाता था जो तय की गई रेंज में होता था, लेकिन डाली गई रेंज 0..size -1 से बाहर होता था, तब keyAt दिखाता था. दस्तावेज़ के मुताबिक, इस तरह के व्यवहार की उम्मीद कभी नहीं की गई थी. साथ ही, यह मान्य इनपुट रेंज से बाहर है. इस बदलाव से, इस व्यवहार को ठीक किया गया है. अब अमान्य इंडेक्स पास करने पर, 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 के लिए पिछली वैल्यू दिखाता है.
  • प्रिमिटिव कलेक्शन, जैसे कि MutableFloatFloatMap पर मौजूद removeIf तरीकों को इनलाइन में बदलें. इससे यह पक्का होता है कि 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 प्रोजेक्ट में कलेक्शन का इस्तेमाल किया जा सकता है. ध्यान दें कि 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 को गलत तरीके से नहीं दिखाता है.

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

    • .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() को एपीआई के मुताबिक बनाएं. इसके लिए, entrySet().toArray(), remove(), removeAll(), और retainAll() को लागू करें. साथ ही, 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() को एपीआई के मुताबिक बनाएं. इसके लिए, entrySet().toArray(), remove(), removeAll(), और retainAll() को लागू करें. साथ ही, 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)
  • SimpleArrayMap में getOrDefault जोड़ा गया (aosp/772607)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला remove जोड़ें. इस सुविधा के लिए, KTX एक्सटेंशन को बंद कर दिया गया है. (aosp/772482)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में दो आर्ग्युमेंट वाला replace फ़ंक्शन जोड़ें (aosp/772483)
  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में तीन आर्ग्युमेंट वाला replace जोड़ें (aosp/772484)
  • ग़ैर-ज़रूरी delete तरीकों को बंद करें. remove तरीके में वही एपीआई और सुविधाएं मिलती हैं जो Maps API for Business में मिलती हैं. साथ ही, इसमें इस्तेमाल किया गया एपीआई, Maps API for Business में इस्तेमाल किए गए एपीआई से मेल खाता है. (aosp/866053)

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

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