אוסף

  
הפחתת ההשפעה על הזיכרון של אוספים קיימים וחדשים שהם קטנים.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫14 בינואר 2026 1.5.0 - ‎1.6.0-beta01 -

הצהרה על יחסי תלות

כדי להוסיף תלות ב-Collection, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

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")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-Build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.

יצירת בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.

גרסה 1.6

גרסה ‎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)

תיקוני באגים

  • הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוגים. מפתחי 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)

External Contribution

תודה ל-Jake Wharton על התרומות הבאות:

  • כדי להתאים את ההתנהגות של 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 מכילה את הקומטים האלה.

שינויים ב-API

  • נוספה תמיכה ביעד KMP וביעד kotlin 1.9 ‏ (Icf15d, ‏ b/364652024)watchosDeviceArm64

גרסה ‎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)

External Contribution

  • העברה אל 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 דמוי רשימה

לדוגמה, מפה עם מפתח של מספר שלם וערך של סוג הפניה היא 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, שיכולה הייתה להוביל לקריסה בגלל IndexOutOfBoundsException.ObjectList (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. לדוגמה, מפה עם מפתח של מספר שלם וערך של סוג הפניה היא 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

  • מעכשיו אפשר להשתמש ב-Collections בפרויקטים של 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 extends 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 והיכולת להגדיר נכון את האפשרות של ערך null בסוגים במקור.
    • ממשקי ה-API הפרטיים של החבילה, .mSize,‏ .mArray,‏ .mHashes,‏ .indexOf(),‏ .indexOfNull() ו-.indexOfValue(), הוגדרו כפרטיים – מבחינה טכנית זהו שינוי שגורם לאי-תאימות בינארית, אבל הוא משקף את הנראות המיועדת של השדות האלה, וזה הכי קרוב שאפשר להגיע ב-Kotlin, כי אין בה דרך לציין נראות פרטית של חבילה.
    • הגדרנו בצורה נכונה את האפשרות להגדיר ערך null עבור חלק מהסוגים. השינוי הזה משפיע על השיטות הבאות: .getOrDefault,‏ .keyAt,‏ .valueAt,‏ .setValueAt,‏ .put,‏ .putIfAbsent,‏ .removeAt ו-.replace.
    • למשתמשי Kotlin, הפונקציה .isEmpty() זמינה עכשיו רק כפונקציה ולא דרך גישה לנכס. ‫(I271b7, b/182813986)
  • המרת 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

  • השיטה שמוזכרת בהערות הגרסה של אלפא03 ושערך @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)