คอลเล็กชัน

  
ลดผลกระทบต่อหน่วยความจำของคอลเล็กชันที่มีอยู่และคอลเล็กชันใหม่ที่มีขนาดเล็ก
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
11 ธันวาคม 2024 1.4.5 - 1.5.0-beta01 -

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ลงในคอลเล็กชัน คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล

Groovy

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

Kotlin

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา

รุ่น 1.5

เวอร์ชัน 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)

การมีส่วนร่วมจากภายนอก

  • กรอไปข้างหน้า 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 แบบใหม่ที่ไม่ต้องมีการจัดสรร ซึ่งมีลักษณะอัตรา Hit ที่ดียิ่งขึ้น (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() ด้วยตัวแปรที่ไม่ได้แสดงข้อยกเว้นในบรรทัด ซึ่งจะช่วยลดขนาดไบนารีสุดท้าย และที่สำคัญกว่านั้นคือช่วยลดภาระของ i-cache ลงเล็กน้อย
    • ปรับปรุง removeDeletedMarkers() ในคอลเล็กชันตระกูล "scatter" เวอร์ชันใหม่จะล้างเครื่องหมายที่ลบไปแล้วครั้งละ 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 และ 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 จำนวนมากมีประเภทที่ถูกต้องสำหรับค่าว่าง และสมาชิกแบบส่วนตัวของแพ็กเกจบางรายการเปลี่ยนเป็น internal รายการการเปลี่ยนแปลงที่แน่ชัดมีอยู่ในบันทึกประจำรุ่นย่อยสำหรับ 1.3.x ด้านล่าง
  • เราได้ผสาน collection-ktx เข้ากับอาร์ติแฟกต์คอลเล็กชันหลักไปพร้อมกับการย้ายข้อมูล Kotlin คุณยกเลิกการอ้างอิง 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 ได้รับการปล่อยแล้ว

การแก้ไขข้อบกพร่อง

  • นำข้อจำกัดของ Dependency ออกจากอาร์ติแฟกต์ Maven เพื่อแก้ปัญหาการสร้างในเป้าหมาย 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 ขยาย 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() - use set.toTypedArray()
      • set.toArray(array) - use 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 การเปลี่ยนแปลงนี้ทำให้เกิดการเปลี่ยนแปลงที่ไม่เข้ากันได้ 2-3 รายการ ซึ่งเป็นผลมาจากการทำงานร่วมกันของ Java กับ Kotlin และความสามารถในการกำหนดค่า Null ของประเภทในแหล่งที่มาอย่างถูกต้อง
    • เราได้เปลี่ยน API ส่วนตัวของแพ็กเกจ .mSize, .mArray, .mHashes, .indexOf(), .indexOfNull() และ .indexOfValue() เป็นส่วนตัว ซึ่งในทางเทคนิคแล้วเป็นการเปลี่ยนแปลงที่ไม่เข้ากันได้กับไบนารี แต่แสดงถึงระดับการเข้าถึงที่ต้องการของช่องเหล่านี้ และเป็นระดับที่ใกล้เคียงที่สุดที่เราทำได้ใน Kotlin เนื่องจากไม่มีวิธีระบุระดับการเข้าถึงระดับแพ็กเกจส่วนตัว
    • ตอนนี้เราได้กำหนดค่าว่างของบางประเภทอย่างถูกต้องแล้ว โดยเมธอดที่ได้รับผลกระทบ ได้แก่ .getOrDefault, .keyAt, .valueAt, .setValueAt, .put, .putIfAbsent, .removeAt, .replace
    • สำหรับผู้ใช้ Kotlin ตอนนี้ .isEmpty() จะใช้งานได้เฉพาะเป็นฟังก์ชันเท่านั้น แทนที่จะเข้าถึงผ่านพร็อพเพอร์ตี้ได้ด้วย (I271b7, b/182813986)
  • แปลง CircularArray เป็น Kotlin การเปลี่ยนแปลงที่สำคัญ

    • แก้ไขค่า Null ของแบบทั่วไปให้ไม่ใช่ Null ซึ่งก่อนหน้านี้ไม่สามารถประกาศได้ แต่บังคับใช้ใน API สาธารณะทั้งหมด
    • ก่อนหน้านี้ ความสามารถในการทำงานร่วมกันของ Java ใน Kotlin ทำให้เข้าถึงเมธอดบางอย่างได้ทั้งในฐานะพร็อพเพอร์ตี้หรือฟังก์ชัน อย่างไรก็ตาม เราต้องนํารายการเหล่านี้ออกเพื่อลดความซ้ำซ้อนและคงความเข้ากันได้ของไบนารีไว้ ซึ่งเป็นการเปลี่ยนแปลงที่ไม่เข้ากันได้กับซอร์สโค้ด การเรียกใช้ที่ได้รับผลกระทบคือ .isEmpty, .getLast() และ .getFirst() (Ifffac)
  • แปลง CircularIntArray เป็น Kotlin ก่อนหน้านี้ ความสามารถในการทำงานร่วมกันของ Java ใน Kotlin ทำให้เข้าถึงเมธอดบางอย่างได้ทั้งในฐานะพร็อพเพอร์ตี้หรือฟังก์ชัน อย่างไรก็ตาม เราต้องนำรายการเหล่านี้ออกเพื่อลดความซ้ำซ้อนและคงความเข้ากันได้ของไบนารีไว้ ซึ่งเป็นการเปลี่ยนแปลงที่ไม่เข้ากันได้กับแหล่งที่มา สายที่ได้รับผลกระทบคือ .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() เป็นไปตามข้อกําหนดของ 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 แบบ 2 อ argum ไปยัง LongSparseArray, SimpleArrayMap และ SparseArrayCompat เลิกใช้งานส่วนขยาย KTX ที่เกี่ยวข้องสำหรับฟังก์ชันนี้ (aosp/772482)
  • เพิ่ม replace แบบ 2 อ argum ไปยัง LongSparseArray, SimpleArrayMap และ SparseArrayCompat (aosp/772483)
  • เพิ่ม replace ที่มีอาร์กิวเมนต์ 3 รายการลงใน LongSparseArray, SimpleArrayMap และ SparseArrayCompat (aosp/772484)
  • เลิกใช้งานเมธอด delete ที่ซ้ำซ้อน เมธอด remove มี API และฟังก์ชันการทำงานเดียวกัน และตรงกับ API ที่ Maps ที่ไม่เชี่ยวชาญใช้ (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 ที่ Maps ที่ไม่เชี่ยวชาญใช้ (aosp/866053)

เวอร์ชัน 1.1.0-alpha01

3 ธันวาคม 2018

การเปลี่ยนแปลง API

  • เพิ่ม putIfAbsent ไปยัง LongSparseArray, SimpleArrayMap และ SparseArrayCompat (aosp/772608)
  • เพิ่ม getOrDefault เป็น SimpleArrayMap (aosp/772607)
  • เพิ่ม remove แบบ 2 อ argum ไปยัง LongSparseArray, SimpleArrayMap และ SparseArrayCompat เลิกใช้งานส่วนขยาย KTX ที่เกี่ยวข้องสำหรับฟังก์ชันนี้ (aosp/772482)
  • เพิ่ม replace แบบ 2 อ argum ไปยัง LongSparseArray, SimpleArrayMap และ SparseArrayCompat (aosp/772483)
  • เพิ่ม replace ที่มีอาร์กิวเมนต์ 3 รายการลงใน LongSparseArray, SimpleArrayMap และ SparseArrayCompat (aosp/772484)