אוסף

  
הפחתת ההשפעה על הזיכרון של אוספים קיימים וחדשים קטנים.
העדכון האחרון גרסה יציבה מועמד לגרסה גרסת בטא גרסת אלפא
24 ביולי 2024 1.4.2 - - -

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

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

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

מגניב

dependencies {
    def collection_version = "1.4.2"
    implementation "androidx.collection:collection:$collection_version"
}

Kotlin

dependencies {
    val collection_version = "1.4.2"
    implementation("androidx.collection:collection:$collection_version")
}

אפשר לקרוא מידע נוסף על יחסי תלות במאמר הוספת יחסי תלות של build.

משוב

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

דיווח על בעיה חדשה

מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.

גרסה 1.4

גרסה 1.4.2

24 ביולי 2024

androidx.collection:collection-*:1.4.2 משוחרר. גרסה 1.4.2 כוללת את ההתחייבויות האלה.

תכונות חדשות

  • כולל יעדים נוספים של Kotlin במספר פלטפורמות: 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 עם API דמוי מפה
  • MutableScatterSet ו- ScatterSet – כיתות עם MutableSet עם API להגדרה
  • MutableObjectList ו- ObjectList – כיתות עם MutableList עם API דמוי רשימה

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

שינויים ב-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 להגדרה
  • MutableObjectList ו- ObjectList – כיתות עם MutableList עם API דמוי רשימה

נוספו אוספים חדשים ביעילות גבוהה לאחסון פרימיטיביים ללא אגרוף:

  • 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>. מפה עם מפתח ארוך וערך צף היא 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.
  • יחד עם המעבר ל-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 משוחרר.

תיקוני באגים

  • הוסרו מגבלות התלות מפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של Maven כדי לעקוף את בעיית ה-build ב-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 עדיין ניסיוניים, אבל החלטנו למזג גרסאות כדי שלמפתחים יהיה קל יותר לנסות אותם.

שינויים ב-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 מפריטי המידע שנוצרו בתהליך הפיתוח (Artifact) הנפוצים (Ic9bd0, b/219589118, b/228347315)
  • CircularIntArray זמין עכשיו לפלטפורמות שאינן Jvm מפריטי המידע שנוצרו בתהליך הפיתוח (Artifact) (I3d8ef, b/228344943)
  • LongSparseArray זמין עכשיו לפלטפורמות שאינן Jvm מפריטי המידע שנוצרו בתהליך הפיתוח (Artifact) (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. השינוי הזה הופך את תוספי ktx הקיימים לנגישים למשתמשי Kotlin בלי לדרוש תלות ב- -ktx, ועדיין לשמור על תאימות למשתמשים הקיימים. תחזוקת התוספים האלה בארטיפקט -ktx נפרד אינה מועילה יותר מכיוון שהארטיפקט הראשי עבר ל-Kotlin. (I6eef2)

שינויים ב-API

  • ArraySet מורחב עכשיו AbstractMutableCollection ולא מיישם יותר את ממשק האיסוף באופן ישיר. (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. השינוי הזה הופך את תוספי ktx הקיימים לנגישים למשתמשי Kotlin בלי לדרוש תלות ב- -ktx, ועדיין לשמור על תאימות למשתמשים הקיימים. תחזוקת התוספים האלה בארטיפקט -ktx נפרד אינה מועילה יותר מכיוון שהארטיפקט הראשי עבר ל-Kotlin. (I8659a)
  • המרת LongSparseArray ל-Kotlin. השינוי הזה מוסיף אפסים מפורשים לסוגים שלהם. זהו שינוי תואם בינארי אבל עלול לגרום לאי-תאימות במקור. באופן ספציפי: * כבר לא ניתן לגשת אל .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)
  • המרת CircularArray ל-Kotlin. שינויים חשובים:

    • מתקן את הריקות של הגנריות כך שלא תהיה null, שבעבר בלתי אפשרית להצהרה, אבל היא נאכפת בכל ממשקי ה-API הציבוריים שלה.
    • בזכות יכולת הפעולה ההדדית של Java ב-Kotlin, בעבר ניתן היה לגשת methods מסוימות כמאפיינים או כפונקציות. אבל כדי לצמצם של כפילויות תוך שמירה על תאימות בינארית, היה צורך כדי להסיר אותם, מה שלא תואם למקור. הבעיות שהושפעו שיחות הן: .isEmpty, .getLast() ו-.getFirst(). (Ifffac)
  • המרת CircularIntArray ל-Kotlin. בזכות יכולת הפעולה ההדדית של Java ב-Kotlin, ניתן היה בעבר לגשת ל-methods מסוימות כמאפיינים או כפונקציות. עם זאת, כדי לצמצם כפילויות תוך שמירה על תאימות בינארית, היה צורך להסיר אותם, שינוי שאינו תואם למקור. השיחות שיושפעו מהשינוי הן: .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)
  • כדי לעמוד בדרישות ה-API של 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 מכילה את שמירות האלה.

שינויים ב-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 מכילה את התחייבויות אלה.

תיקוני באגים

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

שינויים ב-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 שמשמש את מפות 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 שוחררו. אפשר למצוא כאן את ההתחייבות שכלולה בגרסה הזו.

שינויים ב-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 שמשמש את מפות Google שאינן מתמחות. (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)