مجموعه
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۱۴ ژانویه ۲۰۲۶ | ۱.۵.۰ | - | ۱.۶.۰-بتا۰۱ | - |
اعلام وابستگیها
برای افزودن وابستگی به Collection، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { def collection_version = "1.5.0" implementation "androidx.collection:collection:$collection_version" }
کاتلین
dependencies { val collection_version = "1.5.0" implementation("androidx.collection:collection:$collection_version") }
برای اطلاعات بیشتر در مورد وابستگیها، به بخش «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۶
نسخه ۱.۶.۰-بتا۰۱
۱۴ ژانویه ۲۰۲۶
androidx.collection:collection-*:1.6.0-beta01 منتشر شد. نسخه 1.6.0-beta01 شامل این کامیتها است.
تغییرات API
- افزونههای
.toScatterSet() و.toScatterMap() اضافه شدند. این افزونهها یک جایگزین فقط خواندنی برای توابع تبدیل تغییرپذیر ارائه میدهند و در صورت خالی بودن مجموعه منبع، سینگلتونهای بدون تخصیص را برمیگردانند. ( I1769a ، b/459867876 ) - شبهسازندههای
MutableScatterMap(source)وMutableScatterSet(source)را با توابع افزونه استاندارد.toMutableScatterMap()و.toMutableScatterSet()جایگزین کنید. این کار با قراردادهای کاتلین برای تبدیل مجموعهها همسو است. ( Ic9ca6 , b/459867876 ) - توابع کارخانهای
MutableScatterMap(Map)وMutableScatterSet(Set)را اضافه کنید. از این توابع برای ایجاد آسان یک مجموعه scatter که از قبل با محتویات یک مجموعه موجود پر شده است، استفاده کنید. ( I51d70 )
رفع اشکالات
- این کتابخانه اکنون از حاشیهنویسیهای nullness از نوع JSpecify استفاده میکند که از نوع استفاده میکنند. توسعهدهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند:
-Xjspecify-annotations=strict(این پیشفرض است که از نسخه 2.1.0 کامپایلر کاتلین شروع میشود) ( I05181 ، b/326456246 )
نسخه ۱.۶.۰-آلفا۰۱
۲۷ آگوست ۲۰۲۵
androidx.collection:collection-*:1.6.0-alpha01 منتشر شد. نسخه 1.6.0-alpha01 شامل این کامیتها است.
تغییرات API
- پروژههای منتشر شده با کاتلین ۲.۰ برای استفاده به KGP 2.0.0 یا جدیدتر نیاز دارند ( Idb6b5 )
رفع اشکالات
- پیش از این
SparseArrayCompatبرای valueAt وkeyAtnullرا برمیگرداند، زمانی که یک اندیس در محدودهی تخصیص داده شده، اما خارج از محدودهی درج شدهی0..size -1بود. همانطور که مستند شده است، این رفتار هرگز مورد انتظار نبود و خارج از محدودهی ورودی معتبر بود و این تغییر این رفتار را اصلاح میکند تا در عوض، هنگام ارسال یک اندیس نامعتبر،IndexOutOfBoundsنمایش دهد. ( I68453 )
مشارکت خارجی
با تشکر از جیک وارتون برای مشارکتهای زیر:
- با اضافه کردن یک جداکننده قبل و یک پسوند بعد از نشانگر کوتاهسازی هنگام محدود کردن عناصر گنجانده شده، رفتار
joinToStringبا مجموعههای پلتفرم همتراز کنید. ( I1b7e8 ) -
ScatterSet.hashCodeدیگر در برابر بازگشت (یعنی اضافه شدن مجموعه به خودش) دفاع نمیکند. این امر رفتار آن را باScatterMap،HashSetو مجموعههای اولیه مبتنی بر پراکندگی (مثلاًLongSet) همسو میکند. توجه داشته باشید که متدequalsاز قبل مستعد بازگشت بود وtoStringدر برابر آن دفاع میکند - هر دو رفتاری که با سایر مجموعهها همسو هستند. ( I9c84a ) - تابع
ScatterSet.retainAllاکنون درونخطی است تا از ایجاد نمونه لامبدا جلوگیری شود. ( Ifa4b7 ) -
ScatterSet.hashCodeدیگر از ظرفیت خود در محاسبه هش استفاده نمیکند و تضمین میکند که محتویات برابر هستند اما ظرفیتهای مختلف همچنان مقدار یکسانی تولید میکنند. ( Ic863b ) - اگر قبل از
next()در یک تکرارکننده از مجموعههایkeys،valuesیاentriesScatterMap.asMap()یاScatterSet.asSet()تابعremove()را فراخوانی کنید، اکنونIllegalStateExceptionرخ میدهد. این امر رفتار آن را با رفتار معمول map و set همسو میکند. ( I71694 )
نسخه ۱.۵
نسخه ۱.۵.۰
۱۲ مارس ۲۰۲۵
androidx.collection:collection-*:1.5.0 منتشر شد. نسخه ۱.۵.۰ شامل این کامیتها است.
نسخه ۱.۵.۰-rc01
۲۶ فوریه ۲۰۲۵
androidx.collection:collection-*:1.5.0-rc01 منتشر شد. نسخه 1.5.0-rc01 شامل این کامیتها است.
نسخه ۱.۵.۰-بتا۰۳
۲۹ ژانویه ۲۰۲۵
androidx.collection:collection-*:1.5.0-beta03 منتشر شد. نسخه 1.5.0-beta03 شامل این کامیتها است.
نسخه ۱.۵.۰-بتا۰۲
۱۵ ژانویه ۲۰۲۵
androidx.collection:collection-*:1.5.0-beta02 منتشر شد. نسخه 1.5.0-beta02 شامل این کامیتها است.
نسخه ۱.۵.۰-بتا۰۱
۱۱ دسامبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-beta01 منتشر شد. نسخه 1.5.0-beta01 شامل این کامیتها است.
تغییرات API
- پشتیبانی از
watchosDeviceArm64KMP target و target kotlin 1.9 ( Icf15d ، b/364652024 ) را اضافه میکند.
نسخه ۱.۵.۰-alpha06
۱۳ نوامبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha06 منتشر شد. نسخه 1.5.0-alpha06 شامل این کامیتها است.
رفع اشکالات
- مشکلی که ممکن بود در
SieveCacheوOrderedScatterSetهنگام اضافه کردن آیتمهای متعدد رخ دهد و باعث برخورد مکرر کلیدها شود، برطرف شد. ( Iaaf3d ، b/375607736 ) - هدف wasm را به کتابخانه مجموعه اضافه کنید. ( I66fe3 ، b/352722444 )
نسخه ۱.۵.۰-آلفا۰۵
۳۰ اکتبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha05 منتشر شد. نسخه 1.5.0-alpha05 شامل این کامیتها است.
نسخه ۱.۵.۰-آلفا۰۴
۱۶ اکتبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha04 منتشر شد. نسخه 1.5.0-alpha04 شامل این کامیتها است.
نسخه ۱.۵.۰-آلفا۰۳
۲ اکتبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha03 منتشر شد. نسخه 1.5.0-alpha03 شامل این کامیتها است.
تغییرات API
- بهروزرسانی نسخه کاتلین به ۱.۹ ( I1a14c )
مشارکت خارجی
-
containsبهcontainsKeyارسال کن. ممنون جیک وارتون! ( I9362b ) - برای مجموعههای تخصصی اسکالر، سازندگان کانتینر را اضافه کنید. با تشکر از جیک وارتون! ( I13179 )
نسخه ۱.۵.۰-آلفا۰۲
۱۸ سپتامبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha02 منتشر شد. نسخه 1.5.0-alpha02 شامل این کامیتها است.
تغییرات API
- پشتیبانی از پلتفرم
watchosDeviceArm64( I1cc04 ، b/364652024 ) را اضافه میکند.
نسخه ۱.۵.۰-آلفا۰۱
۴ سپتامبر ۲۰۲۴
androidx.collection:collection-*:1.5.0-alpha01 منتشر شد. نسخه 1.5.0-alpha01 شامل این کامیتها است.
تغییرات API
-
OrderedScatterSetیک مجموعه جدید مرتب و بدون تخصیص است ( Ic4178 ) -
SieveCacheجایگزین جدید و بدون نیاز به تخصیص برایLruCacheاست که ویژگیهای نسبت برخورد بهتری را ارائه میدهد. ( I50a17 ) - نمایش داخلی
packedValueبرایIntIntPairوFloatFloatPairنمایش داده شد. ( Ifeb75 , b/331853566 ) - افزودن دسترسی به آرایه محتوا در مجموعههای لیست. ( I899d5 , b/333903173 )
- اضافه کردن
DoubleList، یک ساختار داده لیست مانند که برای مقادیر Double بهینه شده است. ( Ia10d1 ، b/315127635 )
رفع اشکالات
- کتابخانه مجموعهها (Collections Library) در حال حرکت به سمت کاتلین ۱.۹ ( I0782f ) است.
- بسیاری از مجموعهها را برای کارایی بیشتر بهینه کنید. ( Ic0566 )
نسخه ۱.۴
نسخه ۱.۴.۵
۳۰ اکتبر ۲۰۲۴
androidx.collection:collection-*:1.4.5 منتشر شد. نسخه ۱.۴.۵ شامل این کامیتها است.
نسخه ۱.۴.۴
۱۸ سپتامبر ۲۰۲۴
androidx.collection:collection-*:1.4.4 منتشر شد. نسخه ۱.۴.۴ شامل این کامیتها است.
رفع اشکالات
- راه حل
ArrayIndexOutOfBoundsهنگام مرتب سازی یک مجموعه خالی. ( I65245 )
نسخه ۱.۴.۳
۷ آگوست ۲۰۲۴
androidx.collection:collection-*:1.4.3 منتشر شد. نسخه ۱.۴.۳ شامل این کامیتها است.
رفع اشکالات
- مشکل خرابی که ممکن بود در
ScatterMap،ScatterSetو انواع اولیه آنها رخ دهد، برطرف شد. ( I38a4a ، b/352560465 ) - بهینهسازی عملکرد. به ویژه:
- فراخوانیهای
check()وrequired()را با انواعی جایگزین کنید که خطاها را به صورت درونخطی ارسال نمیکنند. این کار اندازه فایل باینری نهایی را کاهش میدهد و مهمتر از آن، فشار بر i-cache را کمی کاهش میدهد. - تابع
removeDeletedMarkers()در خانواده مجموعههای "scatter" بهبود یافته است. نسخه جدید، نشانگرهای حذف شده را به صورت ۸ نشانگر در یک زمان پاک میکند و از نوشتنهای پرهزینهتر در این فرآیند صرف نظر میکند. ( Ic0566 )
- فراخوانیهای
نسخه ۱.۴.۲
۲۴ ژوئیه ۲۰۲۴
androidx.collection:collection-*:1.4.2 منتشر شد. نسخه ۱.۴.۲ شامل این کامیتها است.
ویژگیهای جدید
- شامل تارگتهای چندسکویی کاتلین اضافی:
watchos،tvos،linuxArm64. ( b/352543988 )
نسخه ۱.۴.۱
۱۰ ژوئیه ۲۰۲۴
androidx.collection:collection-*:1.4.1 منتشر شد. نسخه ۱.۴.۱ شامل این کامیتها است.
رفع اشکالات
- هنگام تغییر اندازه، سنگ قبرهای حذف شده را از Map/Set حذف کنید. ( 7a996c5 , b/345960092 )
نسخه ۱.۴.۰
۲۴ ژانویه ۲۰۲۴
androidx.collection:collection-*:1.4.0 منتشر شد. نسخه ۱.۴.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۳.۰
مجموعههای جدید با راندمان بالا برای نگهداری اقلام اولیه بدون نیاز به جعبهبندی اضافه شدهاند:
-
MutableScatterMapوScatterMap- کلاسهایی باMutableMapو API شبیه به نقشه -
MutableScatterSetوScatterSet- کلاسهایی با API شبیه بهMutableSetو Set -
MutableObjectListوObjectList- کلاسهایی باMutableListو API شبهلیست
برای مثال، یک map با کلید عدد صحیح و مقدار نوع مرجع، IntObjectMap<T> است. یک map با کلید از نوع long و مقدار اعشاری، LongFloatMap است. نسخهای با نام ObjectObjectMap وجود ندارد زیرا توسط ScatterMap/MutableScatterMap پوشش داده شده است.
نسخه ۱.۴.۰-rc01
۱۰ ژانویه ۲۰۲۴
androidx.collection:collection-*:1.4.0-rc01 بدون هیچ تغییری منتشر شده است. نسخه 1.4.0-rc01 شامل این کامیتها است.
نسخه ۱.۴.۰-بتا۰۲
۲۹ نوامبر ۲۰۲۳
androidx.collection:collection-*:1.4.0-beta02 منتشر شد. نسخه 1.4.0-beta02 شامل این کامیتها است.
ویژگیهای جدید
- عملکرد
FloatFloatPairبهبود یافته است. ( If5537 )
رفع اشکالات
- تکرارگر
ScatterMap.asMap()اکنون نمونههای جدید ( I28932 ، b/310365754 ) را برمیگرداند.
نسخه ۱.۴.۰-بتا۰۱
۱۵ نوامبر ۲۰۲۳
androidx.collection:collection-*:1.4.0-beta01 منتشر شد. نسخه 1.4.0-beta01 شامل این کامیتها است.
رفع اشکالات
- رفع مشکل تنظیم نادرست مقادیر
ListIteratorدرObjectListکه میتوانست منجر به خرابی به دلیلIndexOutOfBoundsExceptionشود. ( I3bd8a ، b/307049391 )
نسخه ۱.۴.۰-آلفا۰۲
۱۸ اکتبر ۲۰۲۳
androidx.collection:collection-*:1.4.0-alpha02 منتشر شد. نسخه 1.4.0-alpha02 شامل این کامیتها است.
تغییرات API
- اضافهباری برای
putاضافه شده است که هنگام جایگزینی در تمام مجموعههای اولیه، مانندFloatFloatMap، مقدار قبلی را برمیگرداند. - متدهای
removeIfدر مجموعههای اولیه، مانندMutableFloatFloatMap، به inline تبدیل کنید. این کار تضمین میکند که لامبدا برایremoveIfتخصیص داده نمیشود.
نسخه ۱.۴.۰-آلفا۰۱
۴ اکتبر ۲۰۲۳
androidx.collection:collection-*:1.4.0-alpha01 منتشر شد. نسخه 1.4.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
مجموعههای جدید با راندمان بالا اضافه شدهاند که سربار تخصیص کم و عملکرد بالایی دارند:
-
MutableScatterMapوScatterMap- کلاسهایی باMutableMapو API شبیه به نقشه -
MutableScatterSetوScatterSet- کلاسهایی با API شبیه بهMutableSetو Set -
MutableObjectListوObjectList- کلاسهایی باMutableListو API شبهلیست
مجموعههای جدید با راندمان بالا برای نگهداری اقلام اولیه بدون نیاز به جعبهبندی اضافه شدهاند:
-
Mutable[Int|Float|Long]List- کلاسهایی با رابط برنامهنویسی کاربردی (API) شبیه بهMutableList<Int|Float|Long>. همچنین[Int|Float|Long]Listفقط خواندنی نیز وجود دارد. برای مثال، اعداد صحیح را میتوان در یکIntListنگهداری کرد. -
Mutable[Int|Float|Long]Set- کلاسهایی با رابط برنامهنویسی کاربردی (API) شبیه بهMutableSet<Int|Float|Long>.[Int|Float|Long]Setفقط خواندنی نیز وجود دارد. برای مثال، اعداد صحیح را میتوان در یک IntSet نگهداری کرد. -
Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map- کلاسهایی با API شبیهMutable<Int|Float|Long,T, Int|Float|Long|T>.[Int|Float|Long|Object][Int|Float|Long|Object]Mapنیز وجود دارد. برای مثال، یک نقشه با یک کلید عدد صحیح و یک مقدار از نوع مرجع،IntObjectMap<T>است. یک نقشه با یک کلید طولانی و یک مقدار اعشاری،LongFloatMapاست. نسخهای با نامObjectObjectMapوجود ندارد زیرا توسطScatterMap/MutableScatterMapپوشش داده میشود.
نسخه ۱.۳.۰
نسخه ۱.۳.۰
۴ اکتبر ۲۰۲۳
androidx.collection:collection-*:1.3.0 منتشر شد. نسخه ۱.۳.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۲.۰
- اکنون میتوانید از مجموعهها در پروژههای چند پلتفرمی کاتلین استفاده کنید. توجه داشته باشید که اهداف غیراندرویدی مجموعهها هنوز آزمایشی هستند، اما ما تصمیم گرفتیم نسخهها را ادغام کنیم تا توسعهدهندگان راحتتر بتوانند آنها را امتحان کنند.
- تمام سورس کد به کاتلین منتقل شده است. به عنوان بخشی از این تغییر، بسیاری از APIها اکنون به درستی برای nullity تایپ شدهاند و چند عضو خصوصی بسته
internalدرآمده اند. لیستی از تغییرات دقیق در یادداشتهای انتشار جزئی برای نسخه ۱.۳.x در زیر موجود است. - همراه با مهاجرت کاتلین،
collection-ktxبا مجموعه اصلی ادغام شده است. میتوانید با خیال راحت هرگونه وابستگی بهcollection:collection-ktxرا به نفعcollection:collectionرها کنید، زیراcollection-ktxاکنون خالی است.
نسخه ۱.۳.۰-rc01
۶ سپتامبر ۲۰۲۳
androidx.collection:collection-*:1.3.0-rc01 بدون هیچ تغییری منتشر شده است. نسخه 1.3.0-rc01 شامل این کامیتها است.
نسخه ۱.۳.۰-بتا۰۱
۹ آگوست ۲۰۲۳
androidx.collection:collection-*:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 شامل این کامیتها است.
نسخه ۱.۳.۰-آلفا۰۴
۲۴ مارس ۲۰۲۳
androidx.collection:collection-*:1.3.0-alpha04 منتشر شد.
رفع اشکالات
- محدودیتهای وابستگی از مصنوعات Maven حذف شد تا یک مشکل ساخت در Kotlin Native Targets ( b/274786186 , KT-57531 ) حل شود.
نسخه ۱.۳.۰-آلفا۰۳
۲۲ مارس ۲۰۲۳
androidx.collection:collection-*:1.3.0-alpha03 منتشر شد. نسخه 1.3.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- اکنون میتوانید از مجموعهها در پروژههای KMM استفاده کنید. توجه داشته باشید که اهداف غیراندرویدی مجموعهها هنوز آزمایشی هستند، اما ما تصمیم گرفتیم نسخهها را ادغام کنیم تا توسعهدهندگان راحتتر بتوانند آنها را امتحان کنند.
تغییرات API
-
ArraySetاکنون به جایAbstractMutableCollectionMutableCollectionsپیادهسازی میکند تا امکان پیادهسازیtoArray( I1ac32 ) با حافظه کارآمدتر فراهم شود.
رفع اشکالات
-
ArraySet.toArrayاکنون فقط در JVM موجود است زیرا همیشه فقط برای سازگاری با جاوا گنجانده شده بود. کاربران Kotlin معمولاً باید به جای آن از کمکیهای.toTypedArrayدر stdlib استفاده کنند که دقیقاً همان عملکرد را با ایمنی نوع اضافه شده ارائه میدهد. ( I2c59b )
نسخه ۱.۳.۰-آلفا۰۲
۲۷ ژوئیه ۲۰۲۲
androidx.collection:collection:1.3.0-alpha02 و androidx.collection:collection-ktx:1.3.0-alpha02 منتشر شدند. نسخه 1.3.0-alpha02 شامل این کامیتها است.
تغییرات API
-
SparseArrayCompatاکنون از طریق مصنوع رایج ( Ic9bd0 ، b/219589118 ، b/228347315 ) برای پلتفرمهای غیر jvm نیز در دسترس است. -
CircularIntArrayاکنون از طریق مصنوع رایج ( I3d8ef ، b/228344943 ) برای پلتفرمهای غیر jvm نیز در دسترس است. -
LongSparseArrayاکنون از طریق مصنوع رایج ( I73149 ، b/228347315 ) برای پلتفرمهای غیر jvm نیز در دسترس است.
نسخه ۱.۳.۰-آلفا۰۱
۲۹ ژوئن ۲۰۲۲
androidx.collection:collection:1.3.0-alpha01 و androidx.collection:collection-ktx:1.3.0-alpha01 منتشر شدند. نسخه 1.3.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- افزونههای
collection-ktxبه مجموعههای اصلی artifact،androidx.collection:collectionمنتقل شدهاند. این تغییر، افزونههای -ktx موجود را بدون نیاز به وابستگی -ktx برای کاربران کاتلین قابل دسترسی میکند، در حالی که همچنان سازگاری را برای کاربران موجود حفظ میکند. نگهداری این افزونهها در یک artifact جداگانه -ktx دیگر مفید نیست زیرا artifact اصلی به کاتلین منتقل شده است. ( I6eef2 )
تغییرات API
-
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()
-
- فراخوانیهای زیر دیگر از کاتلین امکانپذیر نیستند:
-
set.toArray()- استفاده ازset.toTypedArray() -
set.toArray(array)- استفاده ازset.forEachIndexed(array::set)
-
- فراخوانیهای زیر نوع آرگومان
- سازندهی سربارگذاریشده برای
SparseArrayCompatرا به عنوان یک آرگومان اختیاری برای کاربران کاتلین ترکیب کنید. ( If8407 , b/227474719 ) - سینتکس عملگر را برای
SparseArrayCompat.get(key, defaultValue).توجه داشته باشید که این هنوز سینتکس عملگر را برای.get(key)مجاز میداند، اما سطح API مربوط بهSparseArrayCompatبا سایر کلاسهای این کتابخانه بهتر همتراز میکند. ( I9a38d ) - افزونههای
LongSparseArrayرا به مصنوع اصلی، androidx.collection:collection، منتقل کنید. این تغییر، افزونههای -ktx از پیش موجود را بدون نیاز به وابستگی -ktx برای کاربران کاتلین قابل دسترسی میکند، در حالی که همچنان سازگاری را برای کاربران موجود حفظ میکند. نگهداری این افزونهها در یک مصنوع -ktx جداگانه دیگر مفید نیست زیرا مصنوع اصلی به کاتلین منتقل شده است. ( I8659a ) - تبدیل
LongSparseArrayبه Kotlin. این تغییر، nullity صریح را به انواع آن اضافه میکند، که یک تغییر سازگار با باینری است، اما ممکن است باعث ناسازگاری منبع شود. به طور خاص: *.isEmptyدیگر به عنوان یک ویژگی قابل دسترسی نیست، باید به عنوان یک فراخوانی تابع در Kotlin به آن دسترسی پیدا کرد -.isEmpty()( Idfd0f ) - تبدیل
SimpleArrayMapبه Kotlin. این تغییر، چند تغییر ناسازگار را ایجاد میکند که نتیجهی تعامل Java-Kotlin و امکان تعریف صحیح nullity انواع در منبع است.- APIهای خصوصی پکیج،
.mSize،.mArray،.mHashes،.indexOf()،.indexOfNull() و.indexOfValue()، خصوصی شدند - این از نظر فنی یک تغییر ناسازگار باینری است، اما نشاندهندهی میزان دیده شدن مورد نظر این فیلدها است و نزدیکترین چیزی است که میتوانیم در کاتلین به آن دست یابیم، زیرا شامل روشی برای تعیین میزان دیده شدن خصوصی پکیج نیست. - اکنون مقدار تهی (nullity) برخی از انواع دادهها به درستی تعریف شده است، متدهای تحت تأثیر عبارتند از:
.getOrDefault،.keyAt،.valueAt،.setValueAt،.put،.putIfAbsent،.removeAt،.replace. - برای کاربران کاتلین،
.isEmpty()اکنون فقط به عنوان یک تابع در دسترس است و دیگر از طریق دسترسی به ویژگیها نیز در دسترس نیست. ( I271b7 ، b/182813986 )
- APIهای خصوصی پکیج،
تبدیل
CircularArrayبه Kotlin. تغییرات قابل توجه:- مشکل تهی بودن ژنریکهایش را به غیرتهی بودن اصلاح میکند، که قبلاً اعلام آن غیرممکن بود، اما در تمام APIهای عمومیاش اعمال میشد.
- با توجه به تعامل جاوا در کاتلین، قبلاً دسترسی به برخی متدها به عنوان ویژگی یا تابع امکانپذیر بود. با این حال، برای کاهش تکرار و در عین حال حفظ سازگاری باینری، لازم بود این موارد حذف شوند که یک تغییر ناسازگار با منبع است. فراخوانیهای تحت تأثیر عبارتند از:
.isEmpty،.getLast()و.getFirst(). ( Ifffac )
تبدیل
CircularIntArrayبه Kotlin. با توجه به تعامل جاوا در Kotlin، قبلاً امکان دسترسی به متدهای خاص به عنوان ویژگی یا تابع وجود داشت. با این حال، برای کاهش تکرار در عین حفظ سازگاری باینری، لازم بود این موارد حذف شوند که یک تغییر ناسازگار با منبع است. فراخوانیهای تحت تأثیر عبارتند از:.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)
-
نسخه ۱.۲.۰
نسخه ۱.۲.۰
۱ دسامبر ۲۰۲۱
androidx.collection:collection:1.2.0 و androidx.collection:collection-ktx:1.2.0 منتشر شدند. نسخه ۱.۲.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۱.۰
- یک سازنده آرایه به
ArraySetاضافه کنید. ( Id7f19 ) - با پیادهسازی
entrySet().toArray()،remove()،removeAll()وretainAll()و حذف پیادهسازیentrySet().addAll()( I5d505 ) API مربوط بهentrySet()را سازگار کنید.
نسخه ۱.۲.۰-rc01
۱۷ نوامبر ۲۰۲۱
androidx.collection:collection:1.2.0-rc01 و androidx.collection:collection-ktx:1.2.0-rc01 منتشر شدند. نسخه 1.2.0-rc01 شامل این کامیتها است.
تغییرات API
- هیچ تغییری نسبت به نسخه بتای قبلی وجود ندارد.
نسخه ۱.۲.۰-بتا۰۱
۱۳ اکتبر ۲۰۲۱
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().addAll()( I5d505 ) API مربوط بهentrySet()را سازگار کنید.
نسخه ۱.۲.۰-آلفا۰۱
۱۶ دسامبر ۲۰۲۰
androidx.collection:collection:1.2.0-alpha01 و androidx.collection:collection-ktx:1.2.0-alpha01 منتشر شدند. نسخه 1.2.0-alpha01 شامل این کامیتها است.
تغییرات API
- یک سازنده آرایه به
ArraySetاضافه کنید. ( Id7f19 )
نسخه ۱.۱.۰
نسخه ۱.۱.۰
۵ ژوئن ۲۰۱۹
androidx.collection:collection:1.1.0 و androidx.collection:collection-ktx:1.1.0 منتشر شدند. کامیتهای (دستورالعملهای) شامل نسخه ۱.۱.۰ را میتوانید اینجا پیدا کنید.
در زیر خلاصهای از تغییرات از نسخه ۱.۰.۰ به ۱.۱.۰ آمده است:
ویژگیهای جدید
- از پیادهسازی کارآمدتری برای توابع
containsوisNotEmptyدر مصنوع 'collection-ktx' استفاده کنید. ( aosp/866529 )
تغییرات API
-
putIfAbsentبهLongSparseArray،SimpleArrayMapوSparseArrayCompat( aosp/772608 ) اضافه کنید. -
getOrDefaultبهSimpleArrayMapاضافه کنید ( aosp/772607 ) - تابع
removeبا دو آرگومان را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید. افزونههای KTX مربوطه را برای این قابلیت منسوخ کنید. ( aosp/772482 ) - تابع
replaceدو آرگومانی را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید ( aosp/772483 ) - تابع
replaceبا سه آرگومان را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید ( aosp/772484 ) - روشهای
deleteاضافی را منسوخ کنید. روشremove، همان API و عملکرد را ارائه میدهد و با API مورد استفاده توسط نقشههای غیر تخصصی مطابقت دارد. ( aosp/866053 )
رفع اشکالات
-
SimpleArrayMapطوری تغییر دهید که حافظه پنهان سراسری داخلی آرایههایش را به جایArrayMap.classدرSimpleArrayMap.classهمگامسازی کند. این کار تضمین میکند که اگر فقط ازSimpleArrayMapاستفاده میکنید،ArrayMapمیتوان با ابزارهای فشردهسازی کد حذف کرد. ( aosp/934557 )
نسخه ۱.۱.۰-rc01
۷ مه ۲۰۱۹
androidx.collection:collection:1.1.0-rc01 و androidx.collection:collection-ktx:1.1.0-rc01 منتشر شدند. کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
ویژگیهای جدید
- از پیادهسازی کارآمدتری برای توابع
containsوisNotEmptyدر مصنوع 'collection-ktx' استفاده کنید. ( aosp/866529 )
نسخه ۱.۱.۰-بتا۰۱
۳ آوریل ۲۰۱۹
androidx.collection:collection:1.1.0-beta01 و androidx.collection:collection-ktx:1.1.0-beta01 منتشر شدند. کامیتهای موجود در این نسخه را میتوانید اینجا پیدا کنید.
تغییرات API
- روشی که در یادداشتهای انتشار alpha03 به آن اشاره شده بود و مقدار
@RestrictToآن تغییر کرده بود، حذف شده است. این روش توسط هیچ کتابخانه AndroidX (چه در حال حاضر و چه در گذشته) استفاده نمیشد و هیچ عملکردی را که در API عمومی وجود نداشت، ارائه نمیداد.
رفع اشکالات
-
SimpleArrayMapطوری تغییر دهید که حافظه پنهان سراسری داخلی آرایههایش را به جایArrayMap.classدرSimpleArrayMap.classهمگامسازی کند. این کار تضمین میکند که اگر فقط ازSimpleArrayMapاستفاده میکنید،ArrayMapمیتوان با ابزارهای فشردهسازی کد حذف کرد. ( aosp/934557 )
نسخه ۱.۱.۰-آلفا۰۳
۱۳ مارس ۲۰۱۹
androidx.collection:collection:1.0.0-alpha03 و androidx.collection:collection-ktx:1.0.0-alpha03 منتشر شدند. لیست کامل کامیتهای موجود در این نسخه را میتوانید اینجا بیابید.
تغییرات API
- متدی در
ArraySetکه قبلاً با@RestrictTo(LIBRARY_GROUP)علامتگذاری شده بود، به@RestrictTo(LIBRARY_GROUP_PREFIX)تغییر یافت. این تغییر برای پشتیبانی از استفادهی تاریخی توسط سایر کتابخانههای AndroidX است که اکنون در شناسههای گروه Maven متفاوتی قرار دارند. این متد یا عمومی خواهد شد یا در نسخه ۱.۱.۰-alpha04 حذف خواهد شد زیرا سایر کتابخانههای AndroidX نباید APIهای خاصی را که سایر توسعهدهندگان دریافت نمیکنند، دریافت کنند.
نسخه ۱.۱.۰-آلفا۰۲
۳۰ ژانویه ۲۰۱۹
androidx.collection:collection 1.1.0-alpha02 و androidx.collection:collection-ktx 1.1.0-alpha02 منتشر شدند.
تغییرات API
- متدهای
deleteاضافی را منسوخ کنید. متدهایremove، همان API و عملکرد را ارائه میدهند و با API مورد استفاده توسط نقشههای غیر تخصصی مطابقت دارند. ( aosp/866053 )
نسخه ۱.۱.۰-آلفا۰۱
۳ دسامبر ۲۰۱۸
تغییرات API
-
putIfAbsentبهLongSparseArray،SimpleArrayMapوSparseArrayCompat( aosp/772608 ) اضافه کنید. -
getOrDefaultبهSimpleArrayMapاضافه کنید ( aosp/772607 ) - تابع
removeبا دو آرگومان را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید. افزونههای KTX مربوطه را برای این قابلیت منسوخ کنید. ( aosp/772482 ) - تابع
replaceدو آرگومانی را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید ( aosp/772483 ) - تابع
replaceبا سه آرگومان را بهLongSparseArray،SimpleArrayMapوSparseArrayCompatاضافه کنید ( aosp/772484 )