אוסף

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

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

כדי להוסיף תלות ב-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-rc01

‫23 בספטמבר 2026

androidx.collection:collection-*:1.7.0-rc01 מופץ. גרסה ‎1.7.0-rc01 מכילה את השמירות האלה.

גרסה ‎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 עם מכסת אחסון של 24GB. (Ic2a85)
  • אופטימיזציה של ScatterMap.getOrPut()הביצועים (I6e46b)
  • נוספה הפונקציה @JvmOverloads לחיתוך פונקציות של מחלקות List (I24410, ‏ b/481371562)
  • התוסף .toOrderedScatterSet() נוסף. הפונקציה הזו מספקת חלופה לקריאה בלבד לפונקציית ההמרה שניתנת לשינוי, ומחזירה סינגלטון ללא הקצאה כשאוסף המקור ריק. (I1b767)

תיקוני באגים

  • שיפור הגיבוב ב-ScatterMap ובאוספים פרימיטיביים כדי להפחית התנגשויות במפתחות Float. (I7d2ac, ‏ b/528428583)
  • מטמיעים את toString() עבור המפתח ScatterMap.asMap, הערך והצפיות ברשומה. כך המפתחים שמשתמשים ב-wrapper‏ asMap() יכולים לראות טוב יותר את ניפוי הבאגים. (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)

External Contribution

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

  • כדי להתאים את ההתנהגות של joinToString לאוספים של הפלטפורמה, מוסיפים מפריד לפני אינדיקטור הקיטוע וסיומת אחריו כשמגבילים את הרכיבים הכלולים. (I1b7e8)
  • ScatterSet.hashCode כבר לא מגן מפני רקורסיה (כלומר, הוספת הקבוצה לעצמה). השינוי הזה מיישר קו עם ההתנהגות של ScatterMap, HashSet וקבוצות פרימיטיביות מבוססות פיזור (למשל, LongSet). שימו לב שהשיטה equals כבר הייתה רגישה לרקורסיה, ו-toString מגן מפניה – שתי התנהגויות שתואמות לאוספים האחרים. (I9c84a)
  • הפונקציה ScatterSet.retainAll מוצגת עכשיו בשורה כדי למנוע יצירה של מופע למדה. (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

  • נוספה תמיכה ביעד watchosDeviceArm64 KMP וביעד 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)

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 דמוי קבוצה
  • MutableObjectList & ObjectList – Classes with MutableList & List-like API

לדוגמה, מפה עם מפתח מסוג integer וערך מסוג reference היא 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

  • נוספה פונקציית עומס יתר (overload) ל-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 דמוי קבוצה
  • MutableObjectList & ObjectList – Classes with MutableList & List-like 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 וערך מסוג reference היא 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 עדיין נמצאים בשלב הניסוי, אבל החלטנו למזג גרסאות כדי להקל על מפתחים לנסות אותם.
  • כל הקוד המקורי הועבר ל-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 צריכים בדרך כלל להשתמש במחלקות העזר .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 מכילה את השמירות האלה.

שינויים ב-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 surface של 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().toArray(),‏ remove(),‏ removeAll() ו-retainAll() ולהסיר את ההטמעה של entrySet().addAll() כדי שהאפליקציה תהיה תואמת ל-entrySet() API‏ (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().toArray(),‏ remove(),‏ removeAll() ו-retainAll() ולהסיר את ההטמעה של entrySet().addAll() כדי שהאפליקציה תהיה תואמת ל-entrySet() API‏ (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)