مجموعه

کاهش تأثیر حافظه بر مجموعه‌های موجود و جدید که کوچک هستند.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۱۴ ژانویه ۲۰۲۶ ۱.۵.۰ - ۱.۶.۰-بتا۰۱ -

اعلام وابستگی‌ها

برای افزودن وابستگی به 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 و keyAt null را برمی‌گرداند، زمانی که یک اندیس در محدوده‌ی تخصیص داده شده، اما خارج از محدوده‌ی درج شده‌ی 0..size -1 بود. همانطور که مستند شده است، این رفتار هرگز مورد انتظار نبود و خارج از محدوده‌ی ورودی معتبر بود و این تغییر این رفتار را اصلاح می‌کند تا در عوض، هنگام ارسال یک اندیس نامعتبر، IndexOutOfBounds نمایش دهد. ( I68453 )

مشارکت خارجی

با تشکر از جیک وارتون برای مشارکت‌های زیر:

  • با اضافه کردن یک جداکننده قبل و یک پسوند بعد از نشانگر کوتاه‌سازی هنگام محدود کردن عناصر گنجانده شده، رفتار joinToString با مجموعه‌های پلتفرم هم‌تراز کنید. ( I1b7e8 )
  • ScatterSet.hashCode دیگر در برابر بازگشت (یعنی اضافه شدن مجموعه به خودش) دفاع نمی‌کند. این امر رفتار آن را با ScatterMap ، HashSet و مجموعه‌های اولیه مبتنی بر پراکندگی (مثلاً LongSet ) همسو می‌کند. توجه داشته باشید که متد equals از قبل مستعد بازگشت بود و toString در برابر آن دفاع می‌کند - هر دو رفتاری که با سایر مجموعه‌ها همسو هستند. ( I9c84a )
  • تابع ScatterSet.retainAll اکنون درون‌خطی است تا از ایجاد نمونه لامبدا جلوگیری شود. ( Ifa4b7 )
  • ScatterSet.hashCode دیگر از ظرفیت خود در محاسبه هش استفاده نمی‌کند و تضمین می‌کند که محتویات برابر هستند اما ظرفیت‌های مختلف همچنان مقدار یکسانی تولید می‌کنند. ( Ic863b )
  • اگر قبل از next() در یک تکرارکننده از مجموعه‌های keys ، values یا entries ScatterMap.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

  • پشتیبانی از watchosDeviceArm64 KMP 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 اکنون به جای AbstractMutableCollection MutableCollections پیاده‌سازی می‌کند تا امکان پیاده‌سازی 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 )
  • تبدیل 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 )