कलेक्शन
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
11 दिसंबर, 2024 | 1.4.5 | - | 1.5.0-beta01 | - |
डिपेंडेंसी का एलान करना
कलेक्शन पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में 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-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
जोड़ें. यह डबल वैल्यू के लिए ऑप्टिमाइज़ किया गया, सूची जैसा डेटा स्ट्रक्चर है. (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)
एपीआई में हुए बदलाव
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)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_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
एपीआई में हुए बदलाव
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)