कलेक्शन

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

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

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

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

Groovy

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

Kotlin

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

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

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

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

नई समस्या दर्ज करने का तरीका

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

वर्शन 1.7

वर्शन 1.7.0-rc01

23 सितंबर, 2026

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

वर्शन 1.7.0-alpha01

09 सितंबर, 2026

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

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

  • MutableObjectList में sortWith, sortBy, और sortByDescending फ़ंक्शन जोड़े गए हैं. साथ ही, ObjectList और प्रिमिटिव लिस्ट क्लास (FloatList, IntList, LongList, DoubleList) में binarySearch एल्गोरिदम जोड़े गए हैं. मौजूदा Int तरीकों के साथ-साथ, FloatList, LongList, और DoubleList के लिए सटीक कॉम्पोनेंट टाइप का इस्तेमाल करके, binarySearch ओवरलोड जोड़े गए हैं. (Ied6f7)
  • androidx.benchmark का स्कोरminSdk अब 24 है. (Ic2a85)
  • ScatterMap.getOrPut() परफ़ॉर्मेंस को ऑप्टिमाइज़ करें (I6e46b)
  • सूची क्लास के ट्रिम फ़ंक्शन में @JvmOverloads जोड़ा गया (I24410, b/481371562)
  • .toOrderedScatterSet() एक्सटेंशन जोड़ा गया. यह, बदलाव किए जा सकने वाले कन्वर्ज़न फ़ंक्शन का रीड-ओनली विकल्प उपलब्ध कराता है. साथ ही, सोर्स कलेक्शन खाली होने पर, बिना किसी असाइनमेंट वाला सिंगलटन दिखाता है. (I1b767)

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

  • ScatterMap और प्रिमिटिव कलेक्शन में हैशिंग को बेहतर बनाया गया है, ताकि Float कुंजियों के लिए टकराव कम हो सकें. (I7d2ac, b/528428583)
  • ScatterMap.asMap, वैल्यू, और एंट्री व्यू के लिए toString() लागू करें. इससे asMap() रैपर का इस्तेमाल करने वाले डेवलपर को डीबग करने की बेहतर सुविधा मिलती है. (I64791)

वर्शन 1.6

वर्शन 1.6.0

11 मार्च, 2026

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

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

  • MutableFloatList, MutableDoubleList, MutableIntList के लिए, ट्रिम फ़ंक्शन का नो-आर्ग्युमेंट वर्शन जोड़ा गया.
  • toMutableOrderedScatterSet, toOrderedScatterSet, toMutableScatterMap, toScatterMap, toMutableScatterSet, toScatterSet एक्सटेंशन फ़ंक्शन जोड़ें.
  • ScatterMap और ScatterSet की परफ़ॉर्मेंस में सुधार किया गया है.
  • minSdk का वर्शन अब 23 है.

वर्शन 1.6.0-rc01

11 फ़रवरी, 2026

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

वर्शन 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 एनोटेशन का इस्तेमाल करती है. ये एनोटेशन, टाइप-यूज़ होते हैं. 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 और keyAt दिखाता था. ऐसा तब होता था, जब इंडेक्स को तय की गई सीमा के अंदर पास किया जाता था, लेकिन वह डाली गई सीमा 0..size -1 से बाहर होता था. दस्तावेज़ के मुताबिक, इस तरह के व्यवहार की उम्मीद कभी नहीं की गई थी. साथ ही, यह मान्य इनपुट रेंज से बाहर है. इस बदलाव से, इस व्यवहार को ठीक किया गया है. अब अमान्य इंडेक्स पास करने पर, IndexOutOfBounds दिखेगा. (I68453)

बाहरी योगदान

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

  • शामिल किए गए एलिमेंट की संख्या सीमित करते समय, ट्रंकेट किए गए एलिमेंट के इंडिकेटर से पहले सेपरेटर और बाद में पोस्टफ़िक्स जोड़कर, joinToString के व्यवहार को प्लैटफ़ॉर्म कलेक्शन के साथ अलाइन करें. (I1b7e8)
  • ScatterSet.hashCode अब रिकर्सन (यानी कि सेट को खुद में जोड़ा जा रहा है) से सुरक्षा नहीं करता है. इससे इसका व्यवहार, ScatterMap, HashSet, और प्रिमिटिव स्कैटर-आधारित सेट (जैसे, LongSet) के मुताबिक हो जाता है. ध्यान दें कि equals तरीका पहले से ही रिकर्सन के लिए संवेदनशील था और toString इससे बचाव करता है. ये दोनों व्यवहार, अन्य कलेक्शन के साथ मेल खाते हैं. (I9c84a)
  • ScatterSet.retainAll फ़ंक्शन को अब इनलाइन कर दिया गया है, ताकि लैम्ब्डा इंस्टेंस न बनाया जा सके. (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 केएमपी टारगेट और टारगेट 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 प्रोजेक्ट में कलेक्शन का इस्तेमाल किया जा सकता है. ध्यान दें कि 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 तक पहुंच गया है. साथ ही, अब यह सीधे तौर पर कलेक्शन इंटरफ़ेस को लागू नहीं करता. (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 के सामान्य वर्शन में मिलती हैं. (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_PREFIX) के तौर पर मार्क किया गया है जिसे पहले @RestrictTo(LIBRARY_GROUP) के तौर पर मार्क किया गया था. ऐसा इसलिए किया गया है, ताकि 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 तरीकों में एक ही एपीआई और सुविधा मिलती है. साथ ही, यह ऐसे एपीआई से मेल खाता है जिसका इस्तेमाल सामान्य Maps करते हैं. (aosp/866053)

वर्शन 1.1.0-alpha01

3 दिसंबर, 2018

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

  • LongSparseArray, SimpleArrayMap, और SparseArrayCompat में putIfAbsent जोड़ें (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)