المجموعة
آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
---|---|---|---|---|
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)