คอลเล็กชัน
อัปเดตล่าสุด | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
4 กันยายน 2024 | 1.4.3 | - | - | 1.5.0-alpha01 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ในคอลเล็กชัน คุณต้องเพิ่มที่เก็บ Google Maven ไปยัง อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับ
ในแอปหรือโมดูล
ดึงดูด
dependencies { def collection_version = "1.4.3" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.4.3" implementation("androidx.collection:collection:$collection_version") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มการอ้างอิงของบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม
รุ่น 1.5
เวอร์ชัน 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.3
7 สิงหาคม 2024
ปล่อย androidx.collection:collection-*:1.4.3
แล้ว เวอร์ชัน 1.4.3 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขความเสียหายที่อาจเกิดขึ้นใน
ScatterMap
,ScatterSet
และตัวแปรพื้นฐาน (I38a4a, b/352560465) - การเพิ่มประสิทธิภาพ โดยเฉพาะอย่างยิ่ง
- แทนที่การเรียกใช้
check()
และrequired()
ด้วยตัวแปรที่ไม่มีการส่งข้อยกเว้นแบบแทรกในบรรทัด ซึ่งจะช่วยลดขนาดไบนารีสุดท้าย และที่สำคัญคือช่วยลดความกดดัน i-cache ได้เล็กน้อย removeDeletedMarkers()
ที่ดีขึ้นใน "กระจาย" คอลเล็กชัน เวอร์ชันใหม่จะล้างเครื่องหมายที่ถูกลบครั้งละ 8 เครื่องหมายและข้ามขั้นตอนการเขียนที่มีราคาแพงกว่า (Ic0566)
- แทนที่การเรียกใช้
เวอร์ชัน 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 จำนวนมากมีการพิมพ์เป็นค่าว่างอย่างเหมาะสม และสมาชิกแพ็กเกจส่วนตัวจำนวนหนึ่งได้เปลี่ยนเป็น
internal
ดูรายการการเปลี่ยนแปลงที่แน่นอนได้ในบันทึกประจำรุ่นฉบับย่อยสำหรับเวอร์ชัน 1.3.x ด้านล่าง - นอกจากการย้ายข้อมูล Kotlin แล้ว ระบบยังรวม
collection-ktx
กับอาร์ติแฟกต์คอลเล็กชันหลักด้วย คุณทิ้งทรัพยากร Dependency ใน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 (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()
- ใช้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 การเปลี่ยนแปลงนี้จะเพิ่มค่าว่างอย่างชัดเจนในประเภท ซึ่งเป็นการเปลี่ยนแปลงที่เข้ากันได้กับไบนารี แต่อาจทำให้เกิดความไม่เข้ากันของแหล่งที่มา กล่าวคือ *.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)
- API ส่วนตัวของแพ็กเกจ,
แปลง
CircularArray
เป็น Kotlin การเปลี่ยนแปลงสำคัญ- แก้ไขค่า Null ใน Commons ให้เป็นค่าที่ไม่เป็น Null ซึ่งก่อนหน้านี้ ประกาศไม่ได้ แต่บังคับใช้ใน API สาธารณะทั้งหมด
- เนื่องจากการทำงานร่วมกันของ Java ของ Kotlin ก่อนหน้านี้จึงสามารถเข้าถึง
เมธอดบางอย่างเป็นทั้งพร็อพเพอร์ตี้หรือฟังก์ชัน แต่หากต้องการลด
การทำซ้ำในขณะที่ยังรักษาความเข้ากันได้ของไบนารี
เพื่อลบรายการเหล่านี้ ซึ่งเป็นการเปลี่ยนแปลงที่ใช้ไม่ได้กับแหล่งที่มา ที่ได้รับผลกระทบ
การโทร ได้แก่
.isEmpty
,.getLast()
และ.getFirst()
(ถ้าฟัก)
แปลง
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) - เพิ่มอาร์กิวเมนต์ 2 รายการ
remove
ในLongSparseArray
,SimpleArrayMap
และSparseArrayCompat
เลิกใช้งานส่วนขยาย KTX ที่เกี่ยวข้องสำหรับฟังก์ชันนี้ (aosp/772482) - เพิ่มอาร์กิวเมนต์ 2 รายการ
replace
ในLongSparseArray
,SimpleArrayMap
และSparseArrayCompat
(aosp/772483) - เพิ่มอาร์กิวเมนต์ 3 รายการ
replace
ใน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) - เพิ่มอาร์กิวเมนต์ 2 รายการ
remove
ในLongSparseArray
,SimpleArrayMap
และSparseArrayCompat
เลิกใช้งานส่วนขยาย KTX ที่เกี่ยวข้องสำหรับฟังก์ชันนี้ (aosp/772482) - เพิ่มอาร์กิวเมนต์ 2 รายการ
replace
ในLongSparseArray
,SimpleArrayMap
และSparseArrayCompat
(aosp/772483) - เพิ่มอาร์กิวเมนต์ 3 รายการ
replace
ในLongSparseArray
,SimpleArrayMap
และSparseArrayCompat
(aosp/772484)