אוסף
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 9 בספטמבר 2026 | 1.6.0 | - | - | 1.7.0-alpha01 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Collection, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { def collection_version = "1.6.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.6.0" implementation("androidx.collection:collection:$collection_version") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.7
גרסה 1.7.0-alpha01
9 בספטמבר 2026
androidx.collection:collection-*:1.7.0-alpha01 מופץ. גרסה 1.7.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את הפונקציות
sortWith,sortByו-sortByDescendingל-MutableObjectList, לצד אלגוריתמים שלbinarySearchב-ObjectListומחלקות של רשימות פרימיטיביות (FloatList,IntList,LongList,DoubleList). הוספנו עומסים שלbinarySearchבאמצעות סוגי רכיבים מדויקים ל-FloatList,LongListו-DoubleListלצד שיטות קיימות שלInt. (Ied6f7) - הציון של
androidx.benchmarkהוא עכשיוminSdkמתוך 24. (Ic2a85) - אופטימיזציה של
ScatterMap.getOrPut()הביצועים (I6e46b) - נוספה הפונקציה
@JvmOverloadsלחיתוך פונקציות של מחלקות List (I24410, b/481371562) - התוסף
.toOrderedScatterSet()נוסף. הפונקציה הזו מספקת חלופה לקריאה בלבד לפונקציית ההמרה שניתנת לשינוי, ומחזירה סינגלטון ללא הקצאה כשאוסף המקור ריק. (I1b767)
תיקוני באגים
- שיפור הגיבוב ב-
ScatterMapובאוספים פרימיטיביים כדי לצמצם התנגשויות במפתחותFloat. (I7d2ac, b/528428583) - מטמיעים את
toString()עבור מפתחScatterMap.asMap, ערך ותצוגות של רשומות. כך המפתחים שמשתמשים ב-wrapperasMap()יכולים לראות את ניפוי הבאגים בצורה טובה יותר. (I64791)
גרסה 1.6
גרסה 1.6.0
11 במרץ 2026
androidx.collection:collection-*:1.6.0 מופץ. גרסה 1.6.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.5.0:
- נוספה גרסה ללא ארגומנט של trim עבור
MutableFloatList, MutableDoubleList, MutableIntList. - הוספת פונקציות של תוספים:
toMutableOrderedScatterSet,toOrderedScatterSet,toMutableScatterMap,toScatterMap,toMutableScatterSet,toScatterSet. - שיפורי ביצועים ב-
ScatterMapוב-ScatterSet. - גרסה
minSdkהיא עכשיו 23.
גרסה 1.6.0-rc01
11 בפברואר 2026
androidx.collection:collection-*:1.6.0-rc01 מופץ. גרסה 1.6.0-rc01 מכילה את השמירות האלה.
גרסה 1.6.0-beta01
14 בינואר 2026
androidx.collection:collection-*:1.6.0-beta01 מופץ. גרסה 1.6.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- התוספים
.toScatterSet()ו-.toScatterMap()נוספו. הפונקציות האלה מספקות חלופה לקריאה בלבד לפונקציות ההמרה שניתנות לשינוי, ומחזירות סינגלטונים ללא הקצאה כשאוסף המקור ריק. (I1769a, b/459867876) - מחליפים את פסאודו-הבנאים
MutableScatterMap(source)ו-MutableScatterSet(source)בפונקציות התוסף הרגילות.toMutableScatterMap()ו-.toMutableScatterSet(). ההתנהגות הזו תואמת למוסכמות של Kotlin לגבי המרות של אוספים. (Ic9ca6, b/459867876) - הוספת פונקציות של
MutableScatterMap(Map)ו-MutableScatterSet(Set). אתם יכולים להשתמש בפונקציות האלה כדי ליצור בקלות אוסף של תרשימי פיזור שמלא בתוכן של אוסף קיים. (I51d70)
תיקוני באגים
- הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחי Kotlin צריכים להשתמש בארגומנט הקומפיילר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זו ברירת המחדל החל מגרסה 2.1.0 של קומפיילר Kotlin) (I05181, b/326456246)
גרסה 1.6.0-alpha01
27 באוגוסט 2025
androidx.collection:collection-*:1.6.0-alpha01 מופץ. גרסה 1.6.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
תיקוני באגים
- בעבר, הפונקציה
SparseArrayCompatהחזירהnullעבור valueAt ו-keyAtכשמועבר אליה אינדקס שנמצא בטווח המוקצה, אבל מחוץ לטווח המוסף0..size -1. כפי שמתואר במסמך, ההתנהגות הזו לא הייתה צפויה אף פעם, והיא חורגת מטווח הקלט התקף. השינוי הזה מתקן את ההתנהגות הזו, כך שבמקום זאת, הפונקציה מקפיצה הודעת שגיאהIndexOutOfBoundsכשמועבר אליה אינדקס לא תקין. (I68453)
חישוב צריכת הנתונים
תודה ל-Jake Wharton על התרומות הבאות:
- כדי להתאים את ההתנהגות של
joinToStringלאוספים של הפלטפורמה, מוסיפים מפריד לפני אינדיקטור החיתוך וסיומת אחריו כשמגבילים את הרכיבים הכלולים. (I1b7e8) ScatterSet.hashCodeכבר לא מגן מפני רקורסיה (כלומר, הוספת הקבוצה לעצמה). השינוי הזה מיישר קו עם ההתנהגות שלScatterMap, HashSetוקבוצות פרימיטיביות מבוססות פיזור (למשל,LongSet). שימו לב שה-methodequalsכבר הייתה חשופה לרקורסיה, ו-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 מכילה את השמירות האלה.
שינויים ב-API
- נוספה תמיכה ביעד
watchosDeviceArm64KMP וביעד kotlin 1.9 (Icf15d, b/364652024)
גרסה 1.5.0-alpha06
13 בנובמבר 2024
androidx.collection:collection-*:1.5.0-alpha06 מופץ. גרסה 1.5.0-alpha06 מכילה את השמירות האלה.
תיקוני באגים
- תוקן קראש שיכול היה להתרחש ב-
SieveCacheוב-OrderedScatterSetכשמוסיפים מספר רב של פריטים שגורמים להתנגשויות חוזרות של מקשים. (Iaaf3d, b/375607736) - הוספת יעד wasm לספריית האוסף. (I66fe3, b/352722444)
גרסה 1.5.0-alpha05
30 באוקטובר 2024
androidx.collection:collection-*:1.5.0-alpha05 מופץ. גרסה 1.5.0-alpha05 מכילה את השמירות האלה.
גרסה 1.5.0-alpha04
16 באוקטובר 2024
androidx.collection:collection-*:1.5.0-alpha04 מופץ. גרסה 1.5.0-alpha04 מכילה את השמירות האלה.
גרסה 1.5.0-alpha03
2 באוקטובר 2024
androidx.collection:collection-*:1.5.0-alpha03 מופץ. גרסה 1.5.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- עדכון גרסת Kotlin ל-1.9 (I1a14c)
חישוב צריכת הנתונים
- העברה אל
containsל-containsKey. תודה, Jake Wharton! (I9362b) - הוספת בנאי מאגרי נתונים לאוספים סקלריים מיוחדים. תודה, Jake Wharton! (I13179)
גרסה 1.5.0-alpha02
18 בספטמבר 2024
androidx.collection:collection-*:1.5.0-alpha02 מופץ. גרסה 1.5.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה ביעד הפלטפורמה
watchosDeviceArm64. (I1cc04, b/364652024)
גרסה 1.5.0-alpha01
4 בספטמבר 2024
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)
תיקוני באגים
- ספריית האוספים עוברת ל-Kotlin 1.9 (I0782f)
- אפשר לבצע אופטימיזציה של הרבה אוספים כדי לשפר את היעילות שלהם. (Ic0566)
גרסה 1.4
גרסה 1.4.5
30 באוקטובר 2024
androidx.collection:collection-*:1.4.5 מופץ. גרסה 1.4.5 מכילה את השמירות האלה.
גרסה 1.4.4
18 בספטמבר 2024
androidx.collection:collection-*:1.4.4 מופץ. גרסה 1.4.4 מכילה את השמירות האלה.
תיקוני באגים
- פתרון עקיף
ArrayIndexOutOfBoundsכשממיינים אוסף ריק. (I65245)
גרסה 1.4.3
7 באוגוסט 2024
androidx.collection:collection-*:1.4.3 מופץ. גרסה 1.4.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שגרמה להשחתה ב-
ScatterMap, ב-ScatterSetובגרסאות הפרימיטיביות שלהם. (I38a4a, b/352560465) - אופטימיזציה של הביצועים. הקפידו במיוחד על הדברים הבאים:
- מחליפים את הקריאות ל-
check()ול-required()בגרסאות שלא כוללות זריקת חריגים בשורה. כך מקטינים את הגודל הסופי של הקובץ הבינארי, וחשוב מכך, מקלים קצת על העומס במטמון ההוראות. - שיפרנו את
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
נוספו קולקציות חדשות ויעילות לאחסון פרימיטיבים בלי boxing:
-
MutableScatterMapו-ScatterMap– כיתות עםMutableMapוממשק API שדומה למפה -
MutableScatterSet&ScatterSet– כיתות עםMutableSetוממשק API דמוי Set -
MutableObjectList&ObjectList– כיתות עםMutableListוממשק API דמוי רשימה
לדוגמה, מפה עם מפתח מסוג integer וערך מסוג הפניה היא IntObjectMap<T>. מפה עם מפתח ארוך וערך מסוג float היא LongFloatMap. אין גרסה בשם ObjectObjectMap כי היא כלולה ב-ScatterMap/MutableScatterMap.
גרסה 1.4.0-rc01
10 בינואר 2024
הגרסה androidx.collection:collection-*:1.4.0-rc01 יוצאת ללא שינויים. גרסה 1.4.0-rc01 מכילה את השמירות האלה.
גרסה 1.4.0-beta02
29 בנובמבר 2023
androidx.collection:collection-*:1.4.0-beta02 מופץ. גרסה 1.4.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- שיפור הביצועים של
FloatFloatPair. (If5537)
תיקוני באגים
-
ScatterMap.asMap()iterator מחזיר עכשיו מופעים חדשים (I28932, b/310365754)
גרסה 1.4.0-beta01
15 בנובמבר 2023
androidx.collection:collection-*:1.4.0-beta01 מופץ. גרסה 1.4.0-beta01 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה
ListIteratorהגדיר ערכים באופן שגוי ב-ObjectList, מה שיכול היה לגרום לקריסה בגללIndexOutOfBoundsException. (I3bd8a, b/307049391)
גרסה 1.4.0-alpha02
18 באוקטובר 2023
androidx.collection:collection-*:1.4.0-alpha02 מופץ. גרסה 1.4.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פונקציית עומס יתר ל-
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וממשק API שדומה למפה -
MutableScatterSet&ScatterSet– כיתות עםMutableSetוממשק API דמוי Set -
MutableObjectList&ObjectList– כיתות עםMutableListוממשק API שדומה לרשימה
נוספו קולקציות חדשות ויעילות לאחסון פרימיטיבים בלי boxing:
-
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לקריאה בלבד. לדוגמה, מפה עם מפתח מסוג integer וערך מסוג הפניה היאIntObjectMap<T>. מפה עם מפתח ארוך וערך מסוג float היא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 של Collections עדיין נמצאים בשלב הניסוי, אבל החלטנו למזג גרסאות כדי להקל על מפתחים לנסות אותם.
- כל הקוד המקורי הועבר ל-Kotlin. כחלק מהשינוי הזה, הרבה ממשקי API מוקלדים עכשיו בצורה נכונה לגבי ערכי null, וכמה חברים פרטיים בחבילה הפכו ל-
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 כדי לעקוף בעיה ב-build ביעדי Kotlin Native (b/274786186, KT-57531).
גרסה 1.3.0-alpha03
22 במרץ 2023
androidx.collection:collection-*:1.3.0-alpha03 מופץ. גרסה 1.3.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- עכשיו אפשר להשתמש באוספים בפרויקטים של KMM. שימו לב: יעדים של אוספים שאינם Android עדיין נמצאים בשלב הניסוי, אבל החלטנו למזג גרסאות כדי להקל על מפתחים לנסות אותם.
שינויים ב-API
-
ArraySetמטמיע עכשיו אתMutableCollectionsבמקוםAbstractMutableCollectionכדי לאפשר הטמעה יעילה יותר שלtoArray(I1ac32)
תיקוני באגים
-
ArraySet.toArrayזמין עכשיו רק ב-JVM, כי הוא תמיד נכלל רק לצורך תאימות ל-Java. משתמשי Kotlin צריכים בדרך כלל להשתמש במקום זאת בעוזרים של stdlib.toTypedArray, שמספקים את אותה פונקציונליות בדיוק עם מניעת שגיאות הקלדה נוספת. (I2c59b)
גרסה 1.3.0-alpha02
27 ביולי 2022
androidx.collection:collection:1.3.0-alpha02 וגם androidx.collection:collection-ktx:1.3.0-alpha02 מופצים. גרסה 1.3.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
-
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)
שינויים ב-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()
- אי אפשר יותר לבצע את הקריאות הבאות מ-Kotlin:
set.toArray()– שימושset.toTypedArray()set.toArray(array)– שימושset.forEachIndexed(array::set)
- השיחות הבאות כוללות את סוג הארגומנט
- משלבים בנאי עמוס מדי עבור
SparseArrayCompatכארגומנט אופציונלי למשתמשי Kotlin. (If8407, b/227474719) - הסרת תחביר של אופרטורים עבור
SparseArrayCompat.get(key, defaultValue).הערה: עדיין אפשר להשתמש בתחביר של אופרטורים עבור.get(key), אבל השינוי הזה משפר את ההתאמה בין ממשק ה-API שלSparseArrayCompatלבין המחלקות האחרות בספרייה הזו. (I9a38d) - העברת
LongSparseArrayתוספים אל הארטיפקט הראשי, androidx.collection:collection. השינוי הזה מאפשר למשתמשי Kotlin לגשת לתוספי ה-ktx הקיימים בלי לדרוש את התלות ב-ktx, ועדיין לשמור על תאימות למשתמשים קיימים. אין יותר יתרון בשמירה של התוספים האלה בארטיפקט נפרד מסוג -ktx, כי הארטיפקט הראשי עבר ל-Kotlin. (I8659a) - המרת
LongSparseArrayל-Kotlin. השינוי הזה מוסיף ערך null מפורש לסוגים שלו, וזה שינוי שמתאים לבינארי, אבל יכול לגרום לחוסר תאימות למקור. במיוחד: * אי אפשר יותר לגשת אל.isEmptyכאל מאפיין, צריך לגשת אליו כאל קריאה לפונקציה ב-Kotlin –.isEmpty()(Idfd0f) - המרת
SimpleArrayMapל-Kotlin. השינוי הזה כולל כמה שינויים לא תואמים, כתוצאה מפעולת הדדית בין Java ל-Kotlin ומהיכולת להגדיר נכון את האפשרות שסוגים מסוימים יהיו ריקים במקור.- ממשקי ה-API הפרטיים של החבילה,
.mSize,.mArray,.mHashes,.indexOf(),.indexOfNull()ו-.indexOfValue(), הוגדרו כפרטיים – מבחינה טכנית זהו שינוי שגורם לאי-תאימות בינארית, אבל הוא משקף את הנראות המיועדת של השדות האלה, וזה הכי קרוב שאפשר להגיע ב-Kotlin, כי אין בה דרך לציין נראות פרטית של חבילה. - הגדרנו עכשיו בצורה נכונה את האפשרות להגדיר ערך null עבור חלק מהסוגים. השינוי הזה משפיע על השיטות הבאות:
.getOrDefault,.keyAt,.valueAt,.setValueAt,.put,.putIfAbsent,.removeAtו-.replace. - משתמשי Kotlin יכולים להשתמש ב-
.isEmpty()רק כפונקציה, ולא גם דרך גישה למאפיין. (I271b7, b/182813986)
- ממשקי ה-API הפרטיים של החבילה,
המרת
CircularArrayל-Kotlin. שינויים בולטים:- הוא מתקן את הערך null של הגנריקה שלו כך שלא יהיה null. בעבר לא הייתה אפשרות להצהיר על כך, אבל זה נאכף בכל ממשקי ה-API הציבוריים שלו.
- בגלל יכולת הפעולה ההדדית של Kotlin עם Java, בעבר היה אפשר לגשת לשיטות מסוימות גם כמאפיינים וגם כפונקציות. עם זאת, כדי לצמצם את הכפילות ולשמור על תאימות בינארית, היה צורך להסיר את הפונקציות האלה, וזה שינוי שגורם לאי-תאימות למקור. השיחות המושפעות הן:
.isEmpty, .getLast()ו-.getFirst(). (Ifffac)
המרת
CircularIntArrayל-Kotlin. בגלל יכולת הפעולה ההדדית של Kotlin עם Java, בעבר הייתה אפשרות לגשת לשיטות מסוימות גם כמאפיינים וגם כפונקציות. עם זאת, כדי לצמצם כפילויות ולשמור על תאימות בינארית, היה צורך להסיר את הפונקציות האלה, וזה שינוי שגורם לאי-תאימות למקור. השיחות המושפעות הן:.isEmpty, .getLast()ו-.getFirst(). (Ie36ce)המרת
LruCacheל-Kotlin (Ia2f19)המרת
SparseArrayCompatל-Kotlin. (If6fe8)נוסף שינוי קטן בהתנהגות של
SparseArrayCompat.valueAt(), כך שהפונקציה כבר לא מחזירה באופן שגוי את הערךnullלקריאות לא מאותחלות מחוץ לגבולות שלsize()אבל בתוך הקיבולת הראשונית שסופקה.בנוסף, השינוי הזה כולל את הערך הנכון של 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)
גרסה 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()API, צריך להטמיע את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 מכילה את השמירות האלה.
שינויים ב-API
- לא בוצעו שינויים מאז גרסת הבטא הקודמת.
גרסה 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()לתואם ל-API, צריך להטמיע את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 מכילה את השמירות האלה.
שינויים ב-API
- מוסיפים בנאי של מערך ל-
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)
שינויים ב-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כדי לסנכרן את המטמון הגלובלי הפנימי של מערכי נתונים ב-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 מופצים. כאן אפשר לראות את השמירות שכלולות בגרסה הזו.
שינויים ב-API
- השיטה שצוינה בהערות לגרסה alpha03 כשיטה שערך
@RestrictToשלה השתנה הוסרה. הוא לא היה בשימוש באף ספריית AndroidX (לא עכשיו ולא בעבר), והוא לא הציע פונקציונליות שלא הייתה זמינה ב-API הציבורי.
תיקוני באגים
- לשנות את
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 מופצים.
כאן אפשר לראות את הרשימה המלאה של הקומיטים שכלולים בגרסה הזו.
שינויים ב-API
- שיטה ב-
ArraySetשסומנה בעבר כ-@RestrictTo(LIBRARY_GROUP)שונתה ל-@RestrictTo(LIBRARY_GROUP_PREFIX). הסיבה לכך היא תמיכה בשימוש היסטורי בספריות אחרות של AndroidX שנמצאות עכשיו במזהי קבוצות שונים של Maven. השיטה הזו תהפוך לציבורית או תוסר בגרסה 1.1.0-alpha04 כי לספריות אחרות של AndroidX לא צריכות להיות ממשקי API מיוחדים שאינם זמינים למפתחים אחרים.
גרסה 1.1.0-alpha02
30 בינואר 2019
androidx.collection:collection 1.1.0-alpha02 וגם androidx.collection:collection-ktx 1.1.0-alpha02 מופצים.
שינויים ב-API
- הוצאה משימוש של שיטות מיותרות של
delete. השיטותremoveמציעות את אותו API ואת אותה פונקציונליות, והן תואמות ל-API שמשמש במפות לא ייעודיות. (aosp/866053)
גרסה 1.1.0-alpha01
3 בדצמבר 2018
שינויים ב-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)