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