المجموعة

  
تقليل تأثير الذاكرة في المجموعات الحالية والجديدة الصغيرة
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫27 أغسطس 2025 1.5.0 - - 1.6.0-alpha01

تحديد الاعتماديات

لإضافة اعتمادية على Collection، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

رائع

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 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)

إصلاح الأخطاء

  • في السابق، كانت الدالة SparseArrayCompat تعرض null للوسيطة valueAt وkeyAt عند تمرير فهرس يندرج ضمن النطاق المخصّص، ولكن خارج النطاق المُدرَج 0..size -1. وكما هو موضّح في المستندات، لم يكن من المتوقّع حدوث هذا السلوك أبدًا، وهو خارج نطاق الإدخال الصالح، ويحلّ هذا التغيير هذه المشكلة من خلال عرض الخطأ IndexOutOfBounds عند تمرير فهرس غير صالح. (I68453)

المساهمة الخارجية

نشكر "جيك وارتون" على المساهمات التالية:

  • يمكنك مطابقة سلوك joinToString مع مجموعات المنصات من خلال إضافة فاصل قبل مؤشر الاقتطاع واللاحقة بعده عند الحدّ من العناصر المضمّنة. (I1b7e8)
  • لم يعُد ScatterSet.hashCode يوفّر الحماية من التكرار (أي إضافة المجموعة إلى نفسها). يؤدي ذلك إلى توافق سلوكه مع ScatterMap وHashSet والمجموعات الأساسية المستندة إلى التشتيت (مثل LongSet). يُرجى العِلم أنّ طريقة equals كانت معرَّضة للتكرار، وأنّ toString تحمي من ذلك، وكلا السلوكين يتوافقان مع المجموعات الأخرى. (I9c84a)
  • أصبحت الدالة ScatterSet.retainAll مضمّنة الآن لتجنُّب إنشاء مثيل lambda. (Ifa4b7)
  • لم يعُد ScatterSet.hashCode يستخدم سعته في احتساب التجزئة، ما يضمن أنّ المحتوى المتساوي ولكن بسعات مختلفة سيظل ينتج القيمة نفسها. (Ic863b)
  • يتم الآن عرض الخطأ IllegalStateException إذا استدعيت remove() قبل next() على مكرّر لمجموعات keys أو values أو entries من ScatterMap.asMap() أو ScatterSet.asSet(). يؤدي ذلك إلى توافق سلوكها مع سلوك الخريطة العادية والمجموعة. (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 واستهداف الإصدار 1.9 من Kotlin (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)
  • تم عرض التمثيل الداخلي packedValue لكل من IntIntPair وFloatFloatPair. (Ifeb75، b/331853566)
  • إضافة إذن الوصول إلى مصفوفة المحتوى في مجموعات القوائم (I899d5، b/333903173)
  • أضِف DoubleList، وهي بنية بيانات شبيهة بالقائمة تم تحسينها لقيم Double. (Ia10d1، b/315127635)

إصلاح الأخطاء

  • نقل مكتبة المجموعات إلى الإصدار 1.9 من Kotlin (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() في مجموعة "الرسومات المبعثرة". يزيل الإصدار الجديد علامات الحذف بمعدل 8 علامات في المرة الواحدة ويتخطى عمليات الكتابة الأكثر تكلفة أثناء العملية. (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 وواجهة برمجة تطبيقات تشبه المجموعات
  • MutableObjectList & ObjectList - الفئات التي تتضمّن MutableList وواجهة برمجة تطبيقات تشبه القائمة

على سبيل المثال، الخريطة التي تحتوي على مفتاح عدد صحيح وقيمة من النوع المرجعي هي IntObjectMap<T>. الخريطة التي تحتوي على مفتاح طويل وقيمة عائمة هي LongFloatMap. لا يتوفّر إصدار بالاسم ObjectObjectMap لأنّ ScatterMap/MutableScatterMap يغطّي هذا الاسم.

الإصدار 1.4.0-rc01

‫10 يناير 2024

تم إصدار androidx.collection:collection-*:1.4.0-rc01 بدون أي تغييرات. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.

الإصدار 1.4.0-beta02

‫29 نوفمبر 2023

تم طرح androidx.collection:collection-*:1.4.0-beta02. يتضمّن الإصدار 1.4.0-beta02 هذه التعديلات.

الميزات الجديدة

  • تحسين أداء FloatFloatPair (If5537)

إصلاح الأخطاء

  • تعرض الدالة التكرارية ScatterMap.asMap() الآن مثيلات جديدة (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، إلى طرق مضمّنة يضمن ذلك عدم تخصيص دالة lambda لـ removeIf.

الإصدار 1.4.0-alpha01

‫4 أكتوبر 2023

تم طرح androidx.collection:collection-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.

الميزات الجديدة

تمت إضافة مجموعات جديدة عالية الكفاءة تتضمّن تكلفة تخصيص منخفضة وأداءً عاليًا:

  • MutableScatterMap وScatterMap - فئات تتضمّن MutableMap وواجهة برمجة تطبيقات تشبه الخريطة
  • MutableScatterSet وScatterSet - فئات تتضمّن MutableSet وواجهة برمجة تطبيقات تشبه المجموعات
  • MutableObjectList & ObjectList - الفئات التي تتضمّن MutableList وواجهة برمجة تطبيقات تشبه القائمة

تمت إضافة مجموعات جديدة عالية الكفاءة لتخزين الأنواع الأساسية بدون تحويلها إلى كائنات:

  • Mutable[Int|Float|Long]List: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهة MutableList<Int|Float|Long>. يتوفّر أيضًا [Int|Float|Long]List للقراءة فقط. على سبيل المثال، يمكن تخزين الأعداد الصحيحة في IntList.
  • Mutable[Int|Float|Long]Set: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهة MutableSet<Int|Float|Long>. يتوفّر أيضًا [Int|Float|Long]Set للقراءة فقط. على سبيل المثال، يمكن الاحتفاظ بالأعداد الصحيحة في IntSet.
  • Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهة Mutable<Int|Float|Long,T, Int|Float|Long|T>. يتوفّر أيضًا [Int|Float|Long|Object][Int|Float|Long|Object]Map للقراءة فقط. على سبيل المثال، الخريطة التي تحتوي على مفتاح عدد صحيح وقيمة من النوع المرجعي هي IntObjectMap<T>. الخريطة التي تحتوي على مفتاح طويل وقيمة عائمة هي LongFloatMap. لا يتوفّر إصدار بالاسم ObjectObjectMap لأنّ ScatterMap/MutableScatterMap يغطّي هذا الاسم.

الإصدار 1.3.0

الإصدار 1.3.0

‫4 أكتوبر 2023

تم طرح androidx.collection:collection-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.

التغييرات المهمة منذ الإصدار 1.2.0

  • يمكنك الآن استخدام "المجموعات" في مشاريع Kotlin Multiplatform. يُرجى العِلم أنّ استهداف "المجموعات" على الأنظمة الأساسية غير Android لا يزال تجريبيًا، ولكن قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين لها.
  • تم نقل كل الرمز المصدر إلى Kotlin. في إطار هذا التغيير، تم الآن تحديد أنواع العديد من واجهات برمجة التطبيقات بشكل صحيح من حيث القيمة الخالية، وأصبح عدد قليل من الأعضاء الخاصين بالحزمة internal. تتوفّر قائمة بالتغييرات الدقيقة في ملاحظات الإصدار الثانوي 1.3.x أدناه.
  • بالإضافة إلى نقل البيانات إلى Kotlin، تم دمج collection-ktx مع العنصر الرئيسي للمجموعة. يمكنك إزالة أي تبعيات على collection:collection-ktx بأمان واستخدام collection:collection بدلاً منها لأنّ collection-ktx أصبح فارغًا الآن.

الإصدار 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.

إصلاح الأخطاء

  • تمت إزالة قيود التبعية من عناصر Maven لحلّ مشكلة في عملية الإنشاء في Kotlin Native Targets (b/274786186، KT-57531).

الإصدار 1.3.0-alpha03

‫22 مارس 2023

تم طرح androidx.collection:collection-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • يمكنك الآن استخدام "المجموعات" في مشاريع KMM. يُرجى العِلم أنّ استهداف "المجموعات" على الأنظمة الأساسية غير Android لا يزال تجريبيًا، ولكننا قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين لها.

تغييرات واجهة برمجة التطبيقات

  • تستخدِم ArraySet الآن MutableCollections بدلاً من AbstractMutableCollection للسماح بتنفيذ toArray (I1ac32) بشكل أكثر فعالية من حيث استخدام الذاكرة.

إصلاح الأخطاء

  • يتوفّر ArraySet.toArray الآن على JVM فقط، إذ كان متاحًا دائمًا للتوافق مع Java. على مستخدمي Kotlin استخدام أدوات .toTypedArray المساعدة في stdlib بشكل عام، لأنّها توفّر الوظيفة نفسها تمامًا مع إضافة ميزة أمان الأنواع. (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 متاحة الآن للأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (Ic9bd0 وb/219589118 وb/228347315)
  • أصبحت CircularIntArray متاحة الآن للأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (I3d8ef، b/228344943)
  • أصبحت LongSparseArray متاحة الآن على الأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (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)
  • دمج أداة إنشاء محمّلة بشكل زائد لـ SparseArrayCompat كمعلَمة اختيارية لمستخدمي Kotlin (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 التغييرات البارزة:

    • يصحّح قيمة Null الخاصة بالأنواع العامة لتصبح غير Null، وهو ما كان يتعذّر الإعلان عنه سابقًا، ولكن تم فرضه في جميع واجهات برمجة التطبيقات العامة.
    • بسبب إمكانية التشغيل التفاعلي بين Kotlin وJava، كان من الممكن سابقًا الوصول إلى بعض الطرق كسمات أو دوال. ومع ذلك، للحدّ من التكرار مع الحفاظ على التوافق الثنائي، كان من الضروري إزالة هذه العناصر، وهو تغيير غير متوافق مع المصدر. عمليات الاستدعاء المتأثرة هي: .isEmpty و.getLast() و.getFirst(). (Ifffac)
  • تحويل CircularIntArray إلى Kotlin بسبب إمكانية التشغيل التفاعلي بين Kotlin وJava، كان من الممكن سابقًا الوصول إلى بعض الطرق كسمات أو وظائف. ومع ذلك، كان من الضروري إزالة هذه العناصر لتقليل التكرار مع الحفاظ على التوافق الثنائي، وهذا تغيير غير متوافق مع المصدر. المكالمات المتأثرة هي: .isEmpty و.getLast() و.getFirst(). (Ie36ce)

  • تحويل LruCache إلى Kotlin (Ia2f19)

  • تحويل SparseArrayCompat إلى Kotlin (If6fe8)

    تمت إضافة تغيير بسيط في السلوك إلى SparseArrayCompat.valueAt()، والذي لم يعُد يعرض null بشكل غير صحيح للمكالمات غير المهيأة خارج نطاق 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:

الميزات الجديدة

  • استخدام تنفيذ أكثر كفاءة للدالتَين contains وisNotEmpty في العنصر collection-ktx (aosp/866529)

تغييرات واجهة برمجة التطبيقات

  • إضافة 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 واجهة برمجة التطبيقات والوظائف نفسها، وتتطابق مع واجهة برمجة التطبيقات التي تستخدمها "خرائط Google" غير المتخصّصة. (aosp/866053)

إصلاح الأخطاء

  • غيِّر SimpleArrayMap لمزامنة ذاكرة التخزين المؤقت العامة الداخلية للمصفوفات على SimpleArrayMap.class بدلاً من ArrayMap.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. يمكنك الاطّلاع على التعديلات في هذا الإصدار هنا.

الميزات الجديدة

  • استخدام تنفيذ أكثر كفاءة للدالتَين contains وisNotEmpty في العنصر collection-ktx (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 فقط، يمكن إزالة 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 الأخرى التي أصبحت الآن تتضمّن معرّفات مجموعات Maven مختلفة. سيتم إتاحة هذه الطريقة للجميع أو إزالتها في الإصدار 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 واجهة برمجة التطبيقات والوظائف نفسها، وتتطابق مع واجهة برمجة التطبيقات المستخدَمة في "خرائط Google" غير المتخصّصة. (aosp/866053)

الإصدار 1.1.0-alpha01

‫3 كانون الأول (ديسمبر) 2018

تغييرات واجهة برمجة التطبيقات

  • إضافة 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)