कलेक्शन
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
27 अगस्त, 2025 | 1.5.0 | - | - | 1.6.0-alpha01 |
डिपेंडेंसी का एलान करना
Collection पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google का मेवन डेटाबेस पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { def collection_version = "1.5.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.5.0" implementation("androidx.collection:collection:$collection_version") }
डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.6
वर्शन 1.6.0-alpha01
27 अगस्त, 2025
androidx.collection:collection-*:1.6.0-alpha01
रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है (Idb6b5)
गड़बड़ियां ठीक की गईं
- इससे पहले,
SparseArrayCompat
में valueAt के लिएnull
औरkeyAt
तब दिखता था, जब इंडेक्स को तय की गई रेंज में पास किया जाता था. हालांकि, यह इंडेक्स, डाली गई रेंज0..size -1
से बाहर होता था. दस्तावेज़ के मुताबिक, इस तरह के व्यवहार की उम्मीद कभी नहीं की गई थी. साथ ही, यह मान्य इनपुट रेंज से बाहर है. इस बदलाव से, इस व्यवहार को ठीक किया गया है. अब अमान्य इंडेक्स पास करने पर,IndexOutOfBounds
दिखेगा. (I68453)
बाहरी योगदान
इन योगदानों के लिए, Jake Wharton का धन्यवाद:
- शामिल किए गए एलिमेंट की संख्या सीमित करते समय, ट्रंकेट किए गए एलिमेंट के इंडिकेटर से पहले सेपरेटर और बाद में पोस्टफ़िक्स जोड़कर,
joinToString
के व्यवहार को प्लैटफ़ॉर्म कलेक्शन के साथ अलाइन करें. (I1b7e8) ScatterSet.hashCode
अब रिकर्सन (यानी कि सेट को खुद में जोड़ा जा रहा है) से सुरक्षा नहीं करता है. इससे इसका व्यवहारScatterMap
,HashSet
, और प्रिमिटिव स्कैटर-आधारित सेट (जैसे,LongSet
). ध्यान दें किequals
तरीका पहले से ही रिकर्सन के लिए संवेदनशील था औरtoString
इससे बचाव करता है. ये दोनों व्यवहार अन्य कलेक्शन के साथ अलाइन होते हैं. (I9c84a)ScatterSet.retainAll
फ़ंक्शन को अब इनलाइन कर दिया गया है, ताकि lambda इंस्टेंस न बनाया जा सके. (Ifa4b7)ScatterSet.hashCode
अब हैश कैलकुलेशन में अपनी क्षमता का इस्तेमाल नहीं करता है. इससे यह पक्का होता है कि कॉन्टेंट एक जैसा हो. हालांकि, अलग-अलग क्षमताओं से अब भी एक जैसी वैल्यू मिलती है. (Ic863b)- अगर
ScatterMap.asMap()
याScatterSet.asSet()
केkeys
,values
याentries
कलेक्शन के इटरेटर परnext()
से पहलेremove()
को कॉल किया जाता है, तो अबIllegalStateException
थ्रो किया जाता है. इससे, मैप और सेट किए गए व्यवहार के हिसाब से काम करने में मदद मिलती है. (I71694)
संस्करण 1.5
वर्शन 1.5.0
12 मार्च, 2025
androidx.collection:collection-*:1.5.0
रिलीज़ हो गया है. वर्शन 1.5.0 में ये कमिट शामिल हैं.
वर्शन 1.5.0-rc01
26 फ़रवरी, 2025
androidx.collection:collection-*:1.5.0-rc01
रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये कमिट शामिल हैं.
वर्शन 1.5.0-beta03
29 जनवरी, 2025
androidx.collection:collection-*:1.5.0-beta03
रिलीज़ हो गया है. वर्शन 1.5.0-beta03 में ये कमिट शामिल हैं.
वर्शन 1.5.0-beta02
15 जनवरी, 2025
androidx.collection:collection-*:1.5.0-beta02
रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये कमिट शामिल हैं.
वर्शन 1.5.0-beta01
11 दिसंबर, 2024
androidx.collection:collection-*:1.5.0-beta01
रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
watchosDeviceArm64
KMP टारगेट और टारगेट Kotlin 1.9 (Icf15d, b/364652024) के लिए सहायता जोड़ी गई है
वर्शन 1.5.0-alpha06
13 नवंबर, 2024
androidx.collection:collection-*:1.5.0-alpha06
रिलीज़ हो गया है. वर्शन 1.5.0-alpha06 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
SieveCache
औरOrderedScatterSet
में होने वाली क्रैश की समस्या को ठीक किया गया है. यह समस्या, कई आइटम जोड़ने पर होती थी. इससे बार-बार कुंजियों में टकराव होता था. (Iaaf3d, b/375607736)- wasm टारगेट को कलेक्शन लाइब्रेरी में जोड़ें. (I66fe3, b/352722444)
वर्शन 1.5.0-alpha05
30 अक्टूबर, 2024
androidx.collection:collection-*:1.5.0-alpha05
रिलीज़ हो गया है. वर्शन 1.5.0-alpha05 में ये कमिट शामिल हैं.
वर्शन 1.5.0-alpha04
16 अक्टूबर, 2024
androidx.collection:collection-*:1.5.0-alpha04
रिलीज़ हो गया है. वर्शन 1.5.0-alpha04 में ये कमिट शामिल हैं.
वर्शन 1.5.0-alpha03
2 अक्टूबर, 2024
androidx.collection:collection-*:1.5.0-alpha03
रिलीज़ हो गया है. वर्शन 1.5.0-alpha03 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Kotlin का वर्शन 1.9 (I1a14c) पर अपडेट किया गया
बाहरी योगदान
contains
कोcontainsKey
पर फ़ॉरवर्ड करें. धन्यवाद, जैक व्हार्टन! (I9362b)- स्केलर-स्पेशलाइज़्ड कलेक्शन के लिए कंटेनर बिल्डर जोड़ें. धन्यवाद, जैक व्हार्टन! (I13179)
वर्शन 1.5.0-alpha02
18 सितंबर, 2024
androidx.collection:collection-*:1.5.0-alpha02
रिलीज़ हो गया है. वर्शन 1.5.0-alpha02 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
watchosDeviceArm64
प्लैटफ़ॉर्म को टारगेट करने की सुविधा जोड़ी गई. (I1cc04, b/364652024)
वर्शन 1.5.0-alpha01
4 सितंबर, 2024
androidx.collection:collection-*:1.5.0-alpha01
रिलीज़ हो गया है. वर्शन 1.5.0-alpha01 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
OrderedScatterSet
एक नया, क्रम से लगाया गया, बिना किसी शुल्क के ऐलोकेशन वाला कलेक्शन है (Ic4178)SieveCache
,LruCache
की जगह इस्तेमाल किया जा सकता है. इसके लिए, किसी तरह का बंटवारा करने की ज़रूरत नहीं होती. साथ ही, इसमें हिट रेशियो की बेहतर सुविधाएं मिलती हैं. (I50a17)IntIntPair
औरFloatFloatPair
के लिए,packedValue
का इंटरनल रेप्रज़ेंटेशन दिखाया गया. (Ifeb75, b/331853566)- सूची वाले कलेक्शन में कॉन्टेंट ऐरे का ऐक्सेस जोड़ा गया. (I899d5, b/333903173)
DoubleList
जोड़ें. यह लिस्ट जैसा डेटा स्ट्रक्चर है, जिसे Double वैल्यू के लिए ऑप्टिमाइज़ किया गया है. (Ia10d1, b/315127635)
गड़बड़ियां ठीक की गईं
- Collections लाइब्रेरी को Kotlin 1.9 (I0782f) पर ट्रांसफ़र किया जा रहा है
- ज़्यादा बेहतर परफ़ॉर्मेंस के लिए, कई कलेक्शन ऑप्टिमाइज़ किए जाते हैं. (Ic0566)
वर्शन 1.4
वर्शन 1.4.5
30 अक्टूबर, 2024
androidx.collection:collection-*:1.4.5
रिलीज़ हो गया है. वर्शन 1.4.5 में ये कमिट शामिल हैं.
वर्शन 1.4.4
18 सितंबर, 2024
androidx.collection:collection-*:1.4.4
रिलीज़ हो गया है. वर्शन 1.4.4 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- खाली कलेक्शन को क्रम से लगाने के दौरान,
ArrayIndexOutOfBounds
समाधान. (I65245)
वर्शन 1.4.3
7 अगस्त, 2024
androidx.collection:collection-*:1.4.3
रिलीज़ हो गया है. वर्शन 1.4.3 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
ScatterMap
,ScatterSet
, और उनके प्रिमिटिव वैरिएंट में डेटा करप्ट होने की समस्या को ठीक किया गया है. (I38a4a, b/352560465)- परफ़ॉर्मेंस को ऑप्टिमाइज़ किया गया है. खास तौर पर:
check()
औरrequired()
को ऐसे वैरिएंट से बदलें जो इनलाइन अपवादों को थ्रो नहीं करते. इससे फ़ाइनल बाइनरी का साइज़ कम हो जाता है. साथ ही, इससे i-cache पर पड़ने वाला दबाव भी थोड़ा कम हो जाता है.- कलेक्शन के "स्कैटर" फ़ैमिली में
removeDeletedMarkers()
को बेहतर बनाया गया है. नया वर्शन, एक बार में मिटाए गए आठ मार्कर हटा देता है. साथ ही, इस प्रोसेस में ज़्यादा खर्च वाले राइट ऑपरेशन को छोड़ देता है. (Ic0566)
वर्शन 1.4.2
24 जुलाई, 2024
androidx.collection:collection-*:1.4.2
रिलीज़ हो गया है. वर्शन 1.4.2 में ये कमिट शामिल हैं.
नई सुविधाएं
- इसमें Kotlin Multiplatform के अतिरिक्त टारगेट शामिल हैं:
watchos
,tvos
,linuxArm64
. (b/352543988)
वर्शन 1.4.1
10 जुलाई, 2024
androidx.collection:collection-*:1.4.1
रिलीज़ हो गया है. वर्शन 1.4.1 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- आकार बदलते समय, मैप/सेट से मिटाए गए टॉम्बस्टोन हटाएं. (7a996c5, b/345960092)
वर्शन 1.4.0
24 जनवरी, 2024
androidx.collection:collection-*:1.4.0
रिलीज़ हो गया है. वर्शन 1.4.0 में ये कमिट शामिल हैं.
1.3.0 के बाद हुए अहम बदलाव
बिना बॉक्सिंग के प्रिमिटिव सेव करने के लिए, ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं:
MutableScatterMap
औरScatterMap
-MutableMap
और मैप जैसे एपीआई वाली क्लासMutableScatterSet
औरScatterSet
-MutableSet
और Set-like API वाली क्लासMutableObjectList
औरObjectList
-MutableList
और List-like API वाली क्लास
उदाहरण के लिए, पूर्णांक कुंजी और रेफ़रंस टाइप वैल्यू वाला मैप, IntObjectMap<T>
होता है. लंबी कुंजी और फ़्लोट वैल्यू वाला मैप, LongFloatMap
होता है. ObjectObjectMap
नाम का कोई वर्शन नहीं है, क्योंकि यह ScatterMap/MutableScatterMap
के दायरे में आता है.
वर्शन 1.4.0-rc01
10 जनवरी, 2024
androidx.collection:collection-*:1.4.0-rc01
को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.
वर्शन 1.4.0-beta02
29 नवंबर, 2023
androidx.collection:collection-*:1.4.0-beta02
रिलीज़ हो गया है. वर्शन 1.4.0-beta02 में ये कमिट शामिल हैं.
नई सुविधाएं
FloatFloatPair
की परफ़ॉर्मेंस बेहतर हुई. (If5537)
गड़बड़ियां ठीक की गईं
ScatterMap.asMap()
iterator अब नए इंस्टेंस दिखाता है (I28932, b/310365754)
वर्शन 1.4.0-beta01
15 नवंबर, 2023
androidx.collection:collection-*:1.4.0-beta01
रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
ListIterator
मेंObjectList
में गलत तरीके से वैल्यू सेट करने की समस्या को ठीक किया गया है. इससेIndexOutOfBoundsException
की वजह से क्रैश हो सकता था. (I3bd8a, b/307049391)
वर्शन 1.4.0-alpha02
18 अक्टूबर, 2023
androidx.collection:collection-*:1.4.0-alpha02
रिलीज़ हो गया है. वर्शन 1.4.0-alpha02 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
put
के लिए जोड़ा गया ओवरलोड, जो सभी प्रिमिटिव कलेक्शन, जैसे किFloatFloatMap
में बदलने पर पिछली वैल्यू दिखाता है.- प्रिमिटिव कलेक्शन पर मौजूद
removeIf
तरीकों को इनलाइन में बदलें. जैसे,MutableFloatFloatMap
. इससे यह पक्का होता है किremoveIf
के लिए लैंबडा आवंटित नहीं किया गया है.
वर्शन 1.4.0-alpha01
4 अक्टूबर, 2023
androidx.collection:collection-*:1.4.0-alpha01
रिलीज़ हो गया है. वर्शन 1.4.0-alpha01 में ये कमिट शामिल हैं.
नई सुविधाएं
ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं. इनमें कम ओवरहेड होता है और इनकी परफ़ॉर्मेंस बेहतर होती है:
MutableScatterMap
औरScatterMap
-MutableMap
और मैप जैसे एपीआई वाली क्लासMutableScatterSet
औरScatterSet
-MutableSet
और Set-like API वाली क्लासMutableObjectList
औरObjectList
-MutableList
और List-like API वाली क्लास
बिना बॉक्सिंग के प्रिमिटिव सेव करने के लिए, ज़्यादा परफ़ॉर्मेंस वाले नए कलेक्शन जोड़े गए हैं:
Mutable[Int|Float|Long]List
-MutableList<Int|Float|Long>
जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए[Int|Float|Long]List
भी मौजूद है. उदाहरण के लिए, पूर्णांकों कोIntList
में रखा जा सकता है.Mutable[Int|Float|Long]Set
-MutableSet<Int|Float|Long>
जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए[Int|Float|Long]Set
भी मौजूद है. उदाहरण के लिए, IntSet में पूर्णांक रखे जा सकते हैं.Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map
-Mutable<Int|Float|Long,T, Int|Float|Long|T>
जैसे एपीआई वाली क्लास. सिर्फ़ पढ़ने के लिए[Int|Float|Long|Object][Int|Float|Long|Object]Map
भी मौजूद है. उदाहरण के लिए, पूर्णांक कुंजी और रेफ़रंस टाइप वैल्यू वाला मैप,IntObjectMap<T>
होता है. लंबी कुंजी और फ़्लोट वैल्यू वाला मैप,LongFloatMap
होता है.ObjectObjectMap
नाम का कोई वर्शन नहीं है, क्योंकि यहScatterMap/MutableScatterMap
के दायरे में आता है.
वर्शन 1.3.0
वर्शन 1.3.0
4 अक्टूबर, 2023
androidx.collection:collection-*:1.3.0
रिलीज़ हो गया है. वर्शन 1.3.0 में ये कमिट शामिल हैं.
1.2.0 के बाद हुए ज़रूरी बदलाव
- अब Kotlin Multiplatform प्रोजेक्ट में Collections का इस्तेमाल किया जा सकता है. ध्यान दें कि Android के अलावा अन्य प्लैटफ़ॉर्म पर कलेक्शन की सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालाँकि, हमने वर्शन को मर्ज करने का फ़ैसला किया है, ताकि डेवलपर के लिए इन्हें आज़माना आसान हो.
- पूरा सोर्स कोड Kotlin में माइग्रेट कर दिया गया है. इस बदलाव के तहत, कई एपीआई को अब शून्य के लिए सही तरीके से टाइप किया गया है. साथ ही, कुछ पैकेज के निजी सदस्यों को
internal
बना दिया गया है. 1.3.x के माइनर रिलीज़ नोट में, बदलावों की पूरी सूची यहां दी गई है. - Kotlin पर माइग्रेट करने के साथ-साथ,
collection-ktx
को मुख्य कलेक्शन आर्टफ़ैक्ट के साथ मर्ज कर दिया गया है.collection-ktx
अब खाली है. इसलिए,collection:collection-ktx
पर मौजूद किसी भी डिपेंडेंसी कोcollection:collection
के पक्ष में सुरक्षित तरीके से हटाया जा सकता है.
वर्शन 1.3.0-rc01
6 सितंबर, 2023
androidx.collection:collection-*:1.3.0-rc01
को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.3.0-rc01 में ये कमिट शामिल हैं.
वर्शन 1.3.0-beta01
9 अगस्त, 2023
androidx.collection:collection-*:1.3.0-beta01
रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये कमिट शामिल हैं.
वर्शन 1.3.0-alpha04
24 मार्च, 2023
androidx.collection:collection-*:1.3.0-alpha04
रिलीज़ हो गया है.
गड़बड़ियां ठीक की गईं
- Kotlin Native Targets (b/274786186, KT-57531) में बिल्ड की समस्या को हल करने के लिए, Maven आर्टफ़ैक्ट से डिपेंडेंसी की पाबंदियां हटा दी गई हैं.
वर्शन 1.3.0-alpha03
22 मार्च, 2023
androidx.collection:collection-*:1.3.0-alpha03
रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये कमिट शामिल हैं.
नई सुविधाएं
- अब KMM प्रोजेक्ट में, Collections का इस्तेमाल किया जा सकता है. ध्यान दें कि Android के अलावा अन्य प्लैटफ़ॉर्म पर कलेक्शन की सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालाँकि, हमने वर्शन को मर्ज करने का फ़ैसला किया है, ताकि डेवलपर इन्हें आसानी से आज़मा सकें.
एपीआई में हुए बदलाव
ArraySet
अबAbstractMutableCollection
के बजायMutableCollections
लागू करता है, ताकिtoArray
(I1ac32) को ज़्यादा मेमोरी के साथ लागू किया जा सके
गड़बड़ियां ठीक की गईं
ArraySet.toArray
अब सिर्फ़ JVM पर उपलब्ध है, क्योंकि इसे हमेशा Java के साथ काम करने के लिए ही शामिल किया गया था. Kotlin का इस्तेमाल करने वाले लोगों को आम तौर पर stdlib के.toTypedArray
हेल्पर का इस्तेमाल करना चाहिए. इससे टाइप की सुरक्षा के साथ-साथ, ठीक वही फ़ंक्शन मिलता है. (I2c59b)
वर्शन 1.3.0-alpha02
27 जुलाई, 2022
androidx.collection:collection:1.3.0-alpha02
और androidx.collection:collection-ktx:1.3.0-alpha02
रिलीज़ हो गए हैं. वर्शन 1.3.0-alpha02 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
SparseArrayCompat
अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट (Ic9bd0, b/219589118, b/228347315) से उपलब्ध हैCircularIntArray
अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट (I3d8ef, b/228344943) से उपलब्ध हैLongSparseArray
अब नॉन-जेवीएम प्लैटफ़ॉर्म के लिए, सामान्य आर्टफ़ैक्ट से उपलब्ध है (I73149, b/228347315)
वर्शन 1.3.0-alpha01
29 जून, 2022
androidx.collection:collection:1.3.0-alpha01
और androidx.collection:collection-ktx:1.3.0-alpha01
रिलीज़ हो गए हैं. वर्शन 1.3.0-alpha01 में ये कमिट शामिल हैं.
नई सुविधाएं
collection-ktx
एक्सटेंशन को मुख्य कलेक्शन आर्टफ़ैक्ट,androidx.collection:collection
में माइग्रेट कर दिया गया है. इस बदलाव से, Kotlin का इस्तेमाल करने वाले लोग, पहले से मौजूद -ktx एक्सटेंशन को ऐक्सेस कर पाएंगे. इसके लिए, उन्हें -ktx डिपेंडेंसी की ज़रूरत नहीं होगी. साथ ही, मौजूदा उपयोगकर्ताओं के लिए अब भी यह सुविधा उपलब्ध रहेगी. इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखने से अब कोई फ़ायदा नहीं होता, क्योंकि मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. (I6eef2)
एपीआई में हुए बदलाव
ArraySet
अबAbstractMutableCollection
को बढ़ाता है और सीधे तौर पर Collection इंटरफ़ेस को लागू नहीं करता. (If6da0, b/230860589)ArraySet
को Kotlin में बदला गया. टाइपिंग की ज़्यादा पाबंदियों की वजह से, हो सकता है कि Kotlin के कुछ कॉल अब कंपाइल न हों. (Id68c1, b/230860589)- इन कॉल में, ऑर्ग्युमेंट का टाइप
T
है, न किT?
:ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- नीचे दिए गए कॉल का रिटर्न टाइप
T?
है, न किT!
:ArraySet<T?>.valueAt(n)
ArraySet<T?>.removeAt(n)
ArraySet<T?>().iterator().next()
- Kotlin से अब ये कॉल नहीं किए जा सकते:
set.toArray()
-set.toTypedArray()
का इस्तेमाल करेंset.toArray(array)
-set.forEachIndexed(array::set)
का इस्तेमाल करें
- इन कॉल में, ऑर्ग्युमेंट का टाइप
- Kotlin का इस्तेमाल करने वाले लोगों के लिए,
SparseArrayCompat
के ओवरलोड किए गए कंस्ट्रक्टर को वैकल्पिक आर्ग्युमेंट के तौर पर जोड़ें. (If8407, b/227474719) SparseArrayCompat.get(key, defaultValue).
के लिए ऑपरेटर सिंटैक्स हटा दिया गया है ध्यान दें कि इससे.get(key)
के लिए ऑपरेटर सिंटैक्स का इस्तेमाल अब भी किया जा सकता है. हालांकि, इससेSparseArrayCompat
का एपीआई सर्फ़ेस, इस लाइब्रेरी की अन्य क्लास के साथ बेहतर तरीके से अलाइन हो जाता है. (I9a38d)LongSparseArray
एक्सटेंशन को मुख्य आर्टफ़ैक्ट, androidx.collection:collection में माइग्रेट किया गया. इस बदलाव से, Kotlin का इस्तेमाल करने वाले लोग, पहले से मौजूद -ktx एक्सटेंशन को ऐक्सेस कर पाएंगे. इसके लिए, उन्हें -ktx डिपेंडेंसी की ज़रूरत नहीं होगी. साथ ही, मौजूदा उपयोगकर्ताओं के लिए अब भी यह सुविधा उपलब्ध रहेगी. इन एक्सटेंशन को अलग -ktx आर्टफ़ैक्ट में बनाए रखने से अब कोई फ़ायदा नहीं होता, क्योंकि मुख्य आर्टफ़ैक्ट को Kotlin में माइग्रेट कर दिया गया है. (I8659a)LongSparseArray
को Kotlin में बदलें. इस बदलाव से, इसके टाइप में साफ़ तौर पर नल वैल्यू जोड़ी जाती है. यह बाइनरी के साथ काम करने वाला बदलाव है. हालांकि, इससे सोर्स से जुड़ी समस्याएं हो सकती हैं. खास तौर पर: *.isEmpty
को अब प्रॉपर्टी के तौर पर ऐक्सेस नहीं किया जा सकता. इसे Kotlin में फ़ंक्शन कॉल के तौर पर ऐक्सेस किया जाना चाहिए -.isEmpty()
(Idfd0f)SimpleArrayMap
को Kotlin में बदलें. इस बदलाव की वजह से, कुछ ऐसे बदलाव हुए हैं जो एक-दूसरे के साथ काम नहीं करते. ऐसा Java-Kotlin इंटरऑप और सोर्स में टाइप की नलिटी को सही तरीके से तय करने की वजह से हुआ है.- पैकेज प्राइवेट एपीआई,
.mSize
,.mArray
,.mHashes
,.indexOf()
,.indexOfNull()
, और.indexOfValue()
को प्राइवेट कर दिया गया है. तकनीकी तौर पर, यह बाइनरी के साथ काम न करने वाला बदलाव है. हालांकि, इससे इन फ़ील्ड की तय की गई विज़िबिलिटी दिखती है. साथ ही, Kotlin में इसे सबसे सही तरीके से लागू किया जा सकता है, क्योंकि इसमें पैकेज-प्राइवेट विज़िबिलिटी तय करने का कोई तरीका शामिल नहीं है. - अब कुछ टाइप के लिए, यह तय किया जा सकता है कि वैल्यू मौजूद है या नहीं. इन टाइप पर असर डालने वाले तरीके ये हैं:
.getOrDefault
,.keyAt
,.valueAt
,.setValueAt
,.put
,.putIfAbsent
,.removeAt
,.replace
. - Kotlin का इस्तेमाल करने वाले लोगों के लिए,
.isEmpty()
अब सिर्फ़ एक फ़ंक्शन के तौर पर उपलब्ध है. इसे प्रॉपर्टी ऐक्सेस के ज़रिए भी इस्तेमाल नहीं किया जा सकता. (I271b7, b/182813986)
- पैकेज प्राइवेट एपीआई,
CircularArray
को Kotlin में बदलें. ध्यान देने लायक बदलाव:- यह अपने जेनेरिक की नल वैल्यू को नॉन-नल में बदलता है. पहले इसे नॉन-नल के तौर पर एलान नहीं किया जा सकता था. हालांकि, इसके सभी सार्वजनिक एपीआई में इसे लागू किया गया था.
- Kotlin के Java इंटरऑप की वजह से, पहले कुछ तरीकों को प्रॉपर्टी और फ़ंक्शन, दोनों के तौर पर ऐक्सेस किया जा सकता था. हालांकि, बाइनरी कंपैटिबिलिटी बनाए रखते हुए डुप्लीकेट होने की समस्या को कम करने के लिए, इन्हें हटाना ज़रूरी था. यह सोर्स के साथ काम न करने वाला बदलाव है. इन कॉल पर असर पड़ा है:
.isEmpty
,.getLast()
, और.getFirst()
. (Ifffac)
CircularIntArray
को Kotlin में बदलें. Kotlin के Java इंटरऑप की वजह से, पहले कुछ तरीकों को प्रॉपर्टी या फ़ंक्शन, दोनों के तौर पर ऐक्सेस किया जा सकता था. हालांकि, बाइनरी कंपैटिबिलिटी बनाए रखते हुए डुप्लीकेट होने की समस्या को कम करने के लिए, इन्हें हटाना ज़रूरी था. यह सोर्स के साथ काम न करने वाला बदलाव है. इन कॉल पर असर पड़ा है:.isEmpty
,.getLast()
, और.getFirst()
. (Ie36ce)LruCache
को Kotlin (Ia2f19) में बदलेंSparseArrayCompat
को Kotlin में बदलें. (If6fe8)SparseArrayCompat.valueAt()
में थोड़ा बदलाव किया गया है. अब यहsize()
की सीमा से बाहर, लेकिन दी गई शुरुआती क्षमता के अंदर, बिना शुरू किए गए कॉल के लिएnull
को गलत तरीके से नहीं दिखाता है.इस बदलाव में, कुछ टाइप के लिए सही nullity भी शामिल की गई है, जो पहले मौजूद नहीं थी.
.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().toArray()
,remove()
,removeAll()
, औरretainAll()
को लागू करके,entrySet()
को एपीआई के मुताबिक बनाएं. साथ ही,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().toArray()
,remove()
,removeAll()
, औरretainAll()
को लागू करके,entrySet()
को एपीआई के मुताबिक बनाएं. साथ ही,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)getOrDefault
कोSimpleArrayMap
में जोड़ें (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
रिलीज़ हो गए हैं. इस वर्शन में शामिल कमिट यहां देखे जा सकते हैं.
एपीआई में हुए बदलाव
- 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
के तरीके, एक ही एपीआई और फ़ंक्शन की सुविधा देते हैं. साथ ही, यह ऐसे एपीआई से मेल खाता है जिसका इस्तेमाल सामान्य मैप करते हैं. (aosp/866053)
वर्शन 1.1.0-alpha01
3 दिसंबर, 2018
एपीआई में हुए बदलाव
putIfAbsent
कोLongSparseArray
,SimpleArrayMap
, औरSparseArrayCompat
में जोड़ें (aosp/772608)getOrDefault
कोSimpleArrayMap
में जोड़ें (aosp/772607)LongSparseArray
,SimpleArrayMap
, औरSparseArrayCompat
में दो आर्ग्युमेंट वालाremove
जोड़ें. इस सुविधा के लिए, KTX एक्सटेंशन को बंद कर दिया गया है. (aosp/772482)LongSparseArray
,SimpleArrayMap
, औरSparseArrayCompat
में दो आर्ग्युमेंट वालाreplace
जोड़ें (aosp/772483)LongSparseArray
,SimpleArrayMap
, औरSparseArrayCompat
में तीन आर्ग्युमेंट वालाreplace
जोड़ें (aosp/772484)