कलेक्शन

  
मौजूदा और नए कलेक्शन, जो छोटे हैं उनकी मेमोरी क्षमता को कम करें.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
30 अक्टूबर, 2024 1.4.5 - - 1.5.0-ऐल्फ़ा05

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

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

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

ग्रूवी

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

Kotlin

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

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

सुझाव

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

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

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

संस्‍करण 1.5

वर्शन 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 जोड़ें. यह डबल वैल्यू के लिए ऑप्टिमाइज़ किया गया, सूची जैसा डेटा स्ट्रक्चर है. (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 मल्टीप्लैटफ़ॉर्म टारगेट शामिल हैं: 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 और Map-like API वाली क्लास
  • MutableScatterSet और ScatterSet - MutableSet और सेट जैसे एपीआई वाली क्लास
  • MutableObjectList और ObjectList - MutableList और सूची जैसे एपीआई वाली क्लास

उदाहरण के लिए, इंटीजर की-वैल्यू और रेफ़रंस टाइप की वैल्यू वाला मैप, 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 में वैल्यू को गलत तरीके से सेट करने की समस्या को ठीक किया गया. इसकी वजह से, IndexOutOfBoundsException की वजह से ऐप्लिकेशन क्रैश हो सकता था.ObjectList (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 के लिए, Lambda फ़ंक्शन असाइन नहीं किया गया है.

वर्शन 1.4.0-alpha01

4 अक्टूबर, 2023

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

नई सुविधाएं

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

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

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

  • 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 मल्टीप्लैटफ़ॉर्म प्रोजेक्ट में कलेक्शन का इस्तेमाल किया जा सकता है. ध्यान दें कि कलेक्शन की सुविधा, 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 नेटिव टारगेट (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 हेल्पर फ़ंक्शन का इस्तेमाल करना चाहिए. ये फ़ंक्शन, टाइप सेफ़्टी के साथ-साथ वही फ़ंक्शन देते हैं जो 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, अब सामान्य आर्टफ़ैक्ट से गैर-jvm प्लैटफ़ॉर्म के लिए उपलब्ध है (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)
  • SparseArrayCompat के लिए ओवरलोडेड कंस्ट्रक्टर को, Kotlin उपयोगकर्ताओं के लिए वैकल्पिक आर्ग्युमेंट के तौर पर जोड़ें. (If8407, b/227474719)
  • SparseArrayCompat.get(key, defaultValue). के लिए ऑपरेटर सिंटैक्स हटाएं. ध्यान दें कि यह अब भी .get(key) के लिए ऑपरेटर सिंटैक्स की अनुमति देता है. हालांकि, यह SparseArrayCompat के एपीआई सरफ़ेस को इस लाइब्रेरी की अन्य क्लास के साथ बेहतर तरीके से अलाइन करता है. (I9a38d)
  • LongSparseArray एक्सटेंशन को मुख्य आर्टफ़ैक्ट, androidx.collection:collection में माइग्रेट करें. इस बदलाव से, Kotlin के उपयोगकर्ताओं को पहले से मौजूद -ktx एक्सटेंशन ऐक्सेस करने की सुविधा मिलती है. इसके लिए, उन्हें -ktx डिपेंडेंसी की ज़रूरत नहीं पड़ती. साथ ही, मौजूदा उपयोगकर्ताओं के लिए, यह सुविधा पहले की तरह ही काम करती रहेगी. मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. इसलिए, इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखना अब फ़ायदेमंद नहीं है. (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(). (इफ़फ़ैक)
  • 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 में ऐरे कन्स्ट्रक्टर जोड़ें. (आईडी7f19)
  • 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 वाले तरीके में भी वही एपीआई और फ़ंक्शन मिलते हैं. साथ ही, यह उस एपीआई से मैच करता है जिसका इस्तेमाल किसी खास मैप के लिए नहीं किया गया है. (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 रिलीज़ हुई हैं. इस वर्शन में शामिल कमिट को यहां देखा जा सकता है.

एपीआई में किए गए बदलाव

  • ऐल्फ़ा03 प्रॉडक्ट की जानकारी में @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 के तरीके, एक ही एपीआई और सुविधाएं देते हैं. साथ ही, ये सामान्य Maps के इस्तेमाल किए जाने वाले एपीआई से मेल खाते हैं. (aosp/866053)

वर्शन 1.1.0-alpha01

3 दिसंबर, 2018

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

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