कलेक्शन

  
छोटे मौजूदा और नए कलेक्शन के लिए, मेमोरी पर पड़ने वाले असर को कम करें.
नया अपडेट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
13 नवंबर, 2024 1.4.5 - - 1.5.0-alpha06

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

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

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

Groovy

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

Kotlin

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

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

सुझाव

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

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

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

संस्‍करण 1.5

वर्शन 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 जोड़ें. यह डबल वैल्यू के लिए ऑप्टिमाइज़ किया गया, सूची जैसा डेटा स्ट्रक्चर है. (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 और Map-like API वाली क्लास
  • 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 अब सामान्य आर्टफ़ैक्ट (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 डिपेंडेंसी की ज़रूरत नहीं पड़ती. साथ ही, मौजूदा उपयोगकर्ताओं के लिए, यह सुविधा पहले की तरह ही काम करती रहेगी. मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. इसलिए, इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखना अब फ़ायदेमंद नहीं है. (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 डिपेंडेंसी की ज़रूरत नहीं पड़ती. साथ ही, मौजूदा उपयोगकर्ताओं के लिए, यह सुविधा पहले की तरह ही काम करती रहेगी. मुख्य आर्टफ़ैक्ट को 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(). (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 को बदलकर, ऐरे के अपने इंटरनल ग्लोबल कैश को 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 के तरीके, एक ही एपीआई और सुविधाएं देते हैं. साथ ही, ये सामान्य Maps के इस्तेमाल किए जाने वाले एपीआई से मेल खाते हैं. (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)