Bộ sưu tập
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 27 tháng 8 năm 2025 | 1.5.0 | - | - | 1.6.0-alpha01 |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên Bộ sưu tập, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun của mình:
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem nội dung Thêm phần phụ thuộc cho bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.6
Phiên bản 1.6.0-alpha01
Ngày 27 tháng 8 năm 2025
Phát hành androidx.collection:collection-*:1.6.0-alpha01
. Phiên bản 1.6.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Các dự án được phát hành bằng Kotlin 2.0 yêu cầu sử dụng KGP 2.0.0 trở lên (Idb6b5)
Sửa lỗi
- Trước đây,
SparseArrayCompat
trả vềnull
cho valueAt vàkeyAt
khi được truyền một chỉ mục nằm trong phạm vi được phân bổ, nhưng nằm ngoài phạm vi được chèn0..size -1
. Như đã ghi lại, hành vi này không bao giờ được mong đợi và nằm ngoài phạm vi đầu vào hợp lệ. Thay đổi này sẽ khắc phục hành vi này để thay vào đó đưa raIndexOutOfBounds
khi truyền một chỉ mục không hợp lệ. (I68453)
Đóng góp bên ngoài
Cảm ơn Jake Wharton vì những đóng góp sau:
- Điều chỉnh hành vi
joinToString
cho phù hợp với các bộ sưu tập trên nền tảng bằng cách thêm dấu phân cách trước và hậu tố sau chỉ báo cắt bớt khi giới hạn các phần tử được đưa vào. (I1b7e8) ScatterSet.hashCode
không còn chống lại đệ quy (tức là tập hợp được thêm vào chính nó). Điều này giúp hành vi của nó phù hợp vớiScatterMap
,HashSet
và các tập hợp dựa trên phân tán nguyên gốc (ví dụ:LongSet
). Lưu ý rằng phương thứcequals
vốn đã dễ bị đệ quy vàtoString
bảo vệ chống lại điều đó – cả hai hành vi này đều phù hợp với các tập hợp khác. (I9c84a)- Hàm
ScatterSet.retainAll
hiện được nội tuyến để tránh tạo một thực thể lambda. (Ifa4b7) ScatterSet.hashCode
không còn sử dụng dung lượng của nó trong phép tính băm, đảm bảo nội dung bằng nhau nhưng dung lượng khác nhau vẫn tạo ra cùng một giá trị. (Ic863b)- Giờ đây,
IllegalStateException
sẽ được truyền nếu bạn gọiremove()
trướcnext()
trên một trình lặp của các tập hợpkeys
,values
hoặcentries
củaScatterMap.asMap()
hoặcScatterSet.asSet()
. Điều này giúp hành vi của nó phù hợp với hành vi của bản đồ và tập hợp thông thường. (I71694)
Phiên bản 1.5
Phiên bản 1.5.0
Ngày 12 tháng 3 năm 2025
Phát hành androidx.collection:collection-*:1.5.0
. Phiên bản 1.5.0 bao gồm các thay đổi sau.
Phiên bản 1.5.0-rc01
Ngày 26 tháng 2 năm 2025
Phát hành androidx.collection:collection-*:1.5.0-rc01
. Phiên bản 1.5.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta03
Ngày 29 tháng 1 năm 2025
Phát hành androidx.collection:collection-*:1.5.0-beta03
. Phiên bản 1.5.0-beta03 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta02
Ngày 15 tháng 1 năm 2025
Phát hành androidx.collection:collection-*:1.5.0-beta02
. Phiên bản 1.5.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta01
Ngày 11 tháng 12 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-beta01
. Phiên bản 1.5.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm tính năng hỗ trợ cho mục tiêu KMP
watchosDeviceArm64
và mục tiêu kotlin 1.9 (Icf15d, b/364652024)
Phiên bản 1.5.0-alpha06
Ngày 13 tháng 11 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha06
. Phiên bản 1.5.0-alpha06 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố có thể xảy ra trong
SieveCache
vàOrderedScatterSet
khi thêm nhiều mục gây ra các xung đột khoá lặp lại. (Iaaf3d, b/375607736) - Thêm mục tiêu wasm vào thư viện tập hợp. (I66fe3, b/352722444)
Phiên bản 1.5.0-alpha05
Ngày 30 tháng 10 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha05
. Phiên bản 1.5.0-alpha05 bao gồm các thay đổi sau.
Phiên bản 1.5.0-alpha04
Ngày 16 tháng 10 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha04
. Phiên bản 1.5.0-alpha04 bao gồm các thay đổi sau.
Phiên bản 1.5.0-alpha03
Ngày 2 tháng 10 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha03
. Phiên bản 1.5.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Cập nhật phiên bản Kotlin lên 1.9 (I1a14c)
Đóng góp bên ngoài
- Chuyển tiếp
contains
đếncontainsKey
. Cảm ơn Jake Wharton! (I9362b) - Thêm trình tạo vùng chứa cho các bộ sưu tập chuyên biệt theo vô hướng. Cảm ơn Jake Wharton! (I13179)
Phiên bản 1.5.0-alpha02
Ngày 18 tháng 9 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha02
. Phiên bản 1.5.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm tính năng hỗ trợ cho mục tiêu nền tảng
watchosDeviceArm64
. (I1cc04, b/364652024)
Phiên bản 1.5.0-alpha01
Ngày 4 tháng 9 năm 2024
Phát hành androidx.collection:collection-*:1.5.0-alpha01
. Phiên bản 1.5.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
OrderedScatterSet
là một tập hợp mới có thứ tự, không cần phân bổ (Ic4178)SieveCache
là một giải pháp thay thế mới không cần phân bổ choLruCache
, mang đến các đặc điểm về tỷ lệ trùng khớp tốt hơn. (I50a17)- Đã hiển thị biểu thị nội bộ
packedValue
choIntIntPair
vàFloatFloatPair
. (Ifeb75, b/331853566) - Thêm quyền truy cập vào mảng nội dung trong các bộ sưu tập danh sách. (I899d5, b/333903173)
- Thêm
DoubleList
, một cấu trúc dữ liệu giống như Danh sách được tối ưu hoá cho các giá trị Double. (Ia10d1, b/315127635)
Sửa lỗi
- Thư viện tập hợp đang chuyển sang nhắm đến Kotlin 1.9 (I0782f)
- Tối ưu hoá nhiều tập hợp để hoạt động hiệu quả hơn. (Ic0566)
Phiên bản 1.4
Phiên bản 1.4.5
Ngày 30 tháng 10 năm 2024
Phát hành androidx.collection:collection-*:1.4.5
. Phiên bản 1.4.5 bao gồm các thay đổi này.
Phiên bản 1.4.4
Ngày 18 tháng 9 năm 2024
Phát hành androidx.collection:collection-*:1.4.4
. Phiên bản 1.4.4 bao gồm các thay đổi sau.
Sửa lỗi
- Giải pháp
ArrayIndexOutOfBounds
khi sắp xếp một bộ sưu tập trống. (I65245)
Phiên bản 1.4.3
Ngày 7 tháng 8 năm 2024
Phát hành androidx.collection:collection-*:1.4.3
. Phiên bản 1.4.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục một lỗi hỏng có thể xảy ra trong
ScatterMap
,ScatterSet
và các biến thể nguyên thuỷ của chúng. (I38a4a, b/352560465) - Tối ưu hoá hiệu suất. Cụ thể:
- Thay thế các lệnh gọi đến
check()
vàrequired()
bằng các biến thể không có trường hợp ngoại lệ nội tuyến. Điều này giúp giảm kích thước nhị phân cuối cùng và quan trọng hơn là giảm bớt áp lực lên i-cache. - Cải thiện
removeDeletedMarkers()
trong nhóm "phân tán" của các bộ sưu tập. Phiên bản mới sẽ xoá 8 điểm đánh dấu đã xoá cùng một lúc và bỏ qua các thao tác ghi tốn kém hơn trong quá trình này. (Ic0566)
- Thay thế các lệnh gọi đến
Phiên bản 1.4.2
Ngày 24 tháng 7 năm 2024
Phát hành androidx.collection:collection-*:1.4.2
. Phiên bản 1.4.2 bao gồm các thay đổi sau.
Tính năng mới
- Bao gồm các mục tiêu Kotlin Multiplatform bổ sung:
watchos
,tvos
,linuxArm64
. (b/352543988)
Phiên bản 1.4.1
Ngày 10 tháng 7 năm 2024
Phát hành androidx.collection:collection-*:1.4.1
. Phiên bản 1.4.1 bao gồm các thay đổi sau.
Sửa lỗi
- Xoá các dấu hiệu đã bị xoá khỏi Map/Set khi đổi kích thước. (7a996c5, b/345960092)
Phiên bản 1.4.0
Ngày 24 tháng 1 năm 2024
Phát hành androidx.collection:collection-*:1.4.0
. Phiên bản 1.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.3.0
Đã thêm các bộ sưu tập mới có hiệu suất cao để lưu trữ các kiểu dữ liệu nguyên thuỷ mà không cần đóng gói:
MutableScatterMap
vàScatterMap
– Các lớp cóMutableMap
và API tương tự như MapsMutableScatterSet
vàScatterSet
– Các lớp cóMutableSet
và API tương tự như SetMutableObjectList
vàObjectList
– Các lớp cóMutableList
và API giống như danh sách
Ví dụ: bản đồ có khoá số nguyên và giá trị thuộc loại tham chiếu là IntObjectMap<T>
. Một bản đồ có khoá dài và giá trị số thực là LongFloatMap
. Không có phiên bản nào có tên ObjectObjectMap
vì phiên bản đó đã được ScatterMap/MutableScatterMap
đề cập.
Phiên bản 1.4.0-rc01
Ngày 10 tháng 1 năm 2024
Phát hành androidx.collection:collection-*:1.4.0-rc01
mà không có thay đổi nào. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-beta02
Ngày 29 tháng 11 năm 2023
Phát hành androidx.collection:collection-*:1.4.0-beta02
. Phiên bản 1.4.0-beta02 bao gồm các thay đổi sau.
Tính năng mới
- Cải thiện hiệu suất của
FloatFloatPair
. (If5537)
Sửa lỗi
- Trình lặp lại
ScatterMap.asMap()
hiện trả về các thực thể mới (I28932, b/310365754)
Phiên bản 1.4.0-beta01
Ngày 15 tháng 11 năm 2023
Phát hành androidx.collection:collection-*:1.4.0-beta01
. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi
ListIterator
đặt sai giá trị trongObjectList
, có thể dẫn đến sự cố doIndexOutOfBoundsException
. (I3bd8a, b/307049391)
Phiên bản 1.4.0-alpha02
Ngày 18 tháng 10 năm 2023
Phát hành androidx.collection:collection-*:1.4.0-alpha02
. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
- Đã thêm phương thức nạp chồng cho
put
. Phương thức này trả về giá trị trước đó khi được thay thế cho tất cả các tập hợp nguyên thuỷ, chẳng hạn nhưFloatFloatMap
. - Chuyển đổi các phương thức
removeIf
trên các tập hợp nguyên gốc, chẳng hạn nhưMutableFloatFloatMap
thành nội tuyến. Điều này đảm bảo rằng lambda choremoveIf
không được phân bổ.
Phiên bản 1.4.0-alpha01
Ngày 4 tháng 10 năm 2023
Phát hành androidx.collection:collection-*:1.4.0-alpha01
. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
Chúng tôi đã thêm các bộ sưu tập mới có hiệu suất cao, mức hao tổn phân bổ thấp và hiệu suất cao:
MutableScatterMap
vàScatterMap
– Các lớp cóMutableMap
và API tương tự như MapsMutableScatterSet
vàScatterSet
– Các lớp cóMutableSet
và API tương tự như SetMutableObjectList
vàObjectList
– Các lớp cóMutableList
và API giống như danh sách
Đã thêm các bộ sưu tập mới có hiệu suất cao để lưu trữ các kiểu dữ liệu nguyên thuỷ mà không cần đóng gói:
Mutable[Int|Float|Long]List
– Các lớp có API tương tự nhưMutableList<Int|Float|Long>
.[Int|Float|Long]List
chỉ đọc cũng tồn tại. Ví dụ: số nguyên có thể được giữ trong mộtIntList
.Mutable[Int|Float|Long]Set
– Các lớp có API tương tự nhưMutableSet<Int|Float|Long>
.[Int|Float|Long]Set
chỉ đọc cũng tồn tại. Ví dụ: bạn có thể giữ các số nguyên trong IntSet.Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map
– Các lớp có API tương tự nhưMutable<Int|Float|Long,T, Int|Float|Long|T>
.[Int|Float|Long|Object][Int|Float|Long|Object]Map
chỉ đọc cũng tồn tại. Ví dụ: bản đồ có khoá số nguyên và giá trị thuộc loại tham chiếu làIntObjectMap<T>
. Một bản đồ có khoá dài và giá trị số thực làLongFloatMap
. Không có phiên bản nào có tênObjectObjectMap
vì phiên bản đó đã đượcScatterMap/MutableScatterMap
đề cập.
Phiên bản 1.3.0
Phiên bản 1.3.0
Ngày 4 tháng 10 năm 2023
Phát hành androidx.collection:collection-*:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- Giờ đây, bạn có thể sử dụng Collections trong các dự án Kotlin Multiplatform. Xin lưu ý rằng các mục tiêu không phải Android của Bộ sưu tập vẫn đang trong giai đoạn thử nghiệm, nhưng chúng tôi quyết định hợp nhất các phiên bản để giúp nhà phát triển dễ dàng dùng thử.
- Tất cả nguồn đã được di chuyển sang Kotlin. Theo đó, nhiều API hiện đã được nhập đúng cách cho giá trị rỗng và một số thành phần riêng tư của gói đã trở thành
internal
. Bạn có thể xem danh sách các thay đổi chính xác trong ghi chú phát hành phụ cho phiên bản 1.3.x bên dưới. - Cùng với quá trình di chuyển Kotlin,
collection-ktx
đã được hợp nhất với cấu phần phần mềm chính của bộ sưu tập. Bạn có thể yên tâm loại bỏ mọi phần phụ thuộc vàocollection:collection-ktx
để chuyển sang dùngcollection:collection
vìcollection-ktx
hiện không có gì.
Phiên bản 1.3.0-rc01
Ngày 6 tháng 9 năm 2023
Phát hành androidx.collection:collection-*:1.3.0-rc01
mà không có thay đổi nào. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta01
Ngày 9 tháng 8 năm 2023
Phát hành androidx.collection:collection-*:1.3.0-beta01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha04
Ngày 24 tháng 3 năm 2023
Phát hành androidx.collection:collection-*:1.3.0-alpha04
.
Sửa lỗi
- Xoá các ràng buộc về phần phụ thuộc khỏi cấu phần phần mềm Maven để khắc phục vấn đề về bản dựng trong Kotlin Native Targets (b/274786186, KT-57531).
Phiên bản 1.3.0-alpha03
Ngày 22 tháng 3 năm 2023
Phát hành androidx.collection:collection-*:1.3.0-alpha03
. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- Giờ đây, bạn có thể sử dụng Tập hợp trong các dự án KMM. Xin lưu ý rằng các mục tiêu không phải Android của Bộ sưu tập vẫn đang trong giai đoạn thử nghiệm, nhưng chúng tôi quyết định hợp nhất các phiên bản để giúp nhà phát triển dễ dàng dùng thử.
Thay đổi về API
ArraySet
hiện triển khaiMutableCollections
thay vìAbstractMutableCollection
để cho phép triển khaitoArray
hiệu quả hơn về bộ nhớ (I1ac32)
Sửa lỗi
ArraySet.toArray
hiện chỉ có trên JVM vì luôn chỉ được đưa vào để tương thích với Java. Người dùng Kotlin thường nên sử dụng các trình trợ giúp.toTypedArray
của stdlib. Các trình trợ giúp này cung cấp chức năng tương tự với độ an toàn của kiểu được thêm. (I2c59b)
Phiên bản 1.3.0-alpha02
Ngày 27 tháng 7 năm 2022
Phát hành androidx.collection:collection:1.3.0-alpha02
và androidx.collection:collection-ktx:1.3.0-alpha02
. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
SparseArrayCompat
hiện có sẵn cho các nền tảng không phải jvm từ cấu phần phần mềm phổ biến (Ic9bd0, b/219589118, b/228347315)CircularIntArray
hiện có sẵn cho các nền tảng không phải jvm từ cấu phần phần mềm phổ biến (I3d8ef, b/228344943)LongSparseArray
hiện có sẵn cho các nền tảng không phải jvm từ cấu phần phần mềm phổ biến (I73149, b/228347315)
Phiên bản 1.3.0-alpha01
Ngày 29 tháng 6 năm 2022
Phát hành androidx.collection:collection:1.3.0-alpha01
và androidx.collection:collection-ktx:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
collection-ktx
phần mở rộng đã được di chuyển vào cấu phần phần mềm chính của bộ sưu tập,androidx.collection:collection
. Thay đổi này giúp người dùng Kotlin có thể truy cập vào các tiện ích -kt từ trước mà không cần phụ thuộc -ktx, trong khi vẫn duy trì khả năng tương thích đối với người dùng hiện có. Việc duy trì những tiện ích này trong một cấu phần phần mềm -ktx riêng biệt sẽ không còn có lợi vì cấu phần phần mềm chính đã chuyển sang Kotlin. (I6eef2)
Thay đổi về API
ArraySet
hiện mở rộngAbstractMutableCollection
và không còn triển khai trực tiếp giao diện Bộ sưu tập. (If6da0, b/230860589)- Đã chuyển đổi
ArraySet
thành Kotlin. Do thao tác nhập nghiêm ngặt hơn, một số lệnh gọi Kotlin có thể không biên dịch được nữa. (Id68c1, b/230860589)- Các lệnh gọi sau có loại đối số
T
, không phảiT?
:ArraySet<T>.contains(null)
ArraySet<T>.add(null)
ArraySet<T>.remove(null)
- Các lệnh gọi sau có loại trả về
T?
, không phảiT!
:ArraySet<T?>.valueAt(n)
ArraySet<T?>.removeAt(n)
ArraySet<T?>().iterator().next()
- Bạn sẽ không thể thực hiện các lệnh gọi sau đây từ Kotlin:
set.toArray()
- sử dụngset.toTypedArray()
set.toArray(array)
- sử dụngset.forEachIndexed(array::set)
- Các lệnh gọi sau có loại đối số
- Kết hợp hàm dựng quá tải cho
SparseArrayCompat
làm đối số không bắt buộc cho người dùng Kotlin. (If8407, b/227474719) - Xoá cú pháp toán tử cho
SparseArrayCompat.get(key, defaultValue).
. Thao tác này vẫn cho phép cú pháp toán tử của.get(key)
, nhưng điều chỉnh tốt hơn giao diện API củaSparseArrayCompat
với các lớp khác trong thư viện này. (I9a38d) - Di chuyển
LongSparseArray
tiện ích sang cấu phần phần mềm chính, androidx.collection:collection. Thay đổi này giúp người dùng Kotlin có thể truy cập vào các tiện ích -kt từ trước mà không cần phụ thuộc -ktx, trong khi vẫn duy trì khả năng tương thích đối với người dùng hiện có. Việc duy trì những tiện ích này trong một cấu phần phần mềm -ktx riêng biệt sẽ không còn có lợi vì cấu phần phần mềm chính đã chuyển sang Kotlin. (I8659a) - Chuyển đổi
LongSparseArray
thành Kotlin. Thay đổi này sẽ làm giảm giá trị null rõ ràng đối với các loại của thay đổi đó, đây là thay đổi tương thích nhị phân, nhưng có thể gây ra sự không tương thích nguồn. Cụ thể: *.isEmpty
không còn truy cập được dưới dạng tài sản, bạn phải truy cập vào tài sản này dưới dạng lệnh gọi hàm trong Kotlin –.isEmpty()
(Idfd0f) - Chuyển đổi
SimpleArrayMap
thành Kotlin. Thay đổi này tạo ra một vài thay đổi không tương thích do kết quả của việc tương tác Java-Kotlin và khả năng xác định chính xác tính chất rỗng của các loại trong nguồn.- Các API riêng tư của gói,
.mSize
,.mArray
,.mHashes
,.indexOf()
,.indexOfNull()
và.indexOfValue()
, đã được chuyển sang chế độ riêng tư – đây về mặt kỹ thuật là thay đổi nhị phân không tương thích, nhưng thể hiện khả năng hiển thị dự định của các trường này và là giá trị gần nhất mà chúng tôi có thể đạt được trong Kotlin vì nó không bao gồm cách chỉ định chế độ hiển thị riêng tư về gói. - Tính chất rỗng của một số loại hiện đã được xác định đúng, các phương thức
bị ảnh hưởng là:
.getOrDefault
,.keyAt
,.valueAt
,.setValueAt
,.put
,.putIfAbsent
,.removeAt
,.replace
. - Đối với người dùng Kotlin, giờ đây,
.isEmpty()
chỉ dùng được dưới dạng hàm thay vì quyền truy cập vào thuộc tính. (I271b7, b/182813986)
- Các API riêng tư của gói,
Chuyển đổi
CircularArray
thành Kotlin. Các thay đổi đáng chú ý:- Sửa giá trị null của các giá trị chung thành giá trị null, điều này trước đây không thể khai báo, nhưng đã được thực thi trong tất cả các API công khai.
- Do khả năng tương tác Java của Kotlin, trước đây bạn có thể truy cập vào
một số phương thức nhất định dưới dạng cả thuộc tính hoặc hàm. Tuy nhiên, để giảm
sự trùng lặp trong khi vẫn duy trì khả năng tương thích nhị phân, bạn cần phải xóa
các thay đổi này. Đây là một thay đổi không tương thích với nguồn. Các lệnh gọi bị ảnh hưởng
là:
.isEmpty
,.getLast()
và.getFirst()
. (Ifffac)
Chuyển đổi
CircularIntArray
thành Kotlin. Do khả năng tương tác Java của Kotlin, trước đây bạn có thể truy cập vào một số phương thức nhất định dưới dạng cả thuộc tính hoặc hàm. Tuy nhiên, để giảm tình trạng trùng lặp trong khi vẫn duy trì khả năng tương thích nhị phân, bạn cần phải xóa những nội dung này. Đây là thay đổi không tương thích với nguồn. Các cuộc gọi bị ảnh hưởng là:.isEmpty
,.getLast()
và.getFirst()
. (Ie36ce)Chuyển đổi
LruCache
thành Kotlin (Ia2f19)Chuyển đổi
SparseArrayCompat
thành Kotlin. (If6fe8)Một thay đổi nhỏ về hành vi được thêm vào
SparseArrayCompat.valueAt()
, không còn trả vềnull
một cách không chính xác cho các lệnh gọi chưa khởi tạo nằm ngoài giới hạn củasize()
nhưng trong phạm vi dung lượng ban đầu đã cung cấp.Thay đổi này cũng áp dụng giá trị null chính xác cho một số loại trước đây bị thiếu.
.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)
Phiên bản 1.2.0
Phiên bản 1.2.0
Ngày 1 tháng 12 năm 2021
Phát hành androidx.collection:collection:1.2.0
và androidx.collection:collection-ktx:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.1.0
- Thêm một hàm khởi tạo mảng vào
ArraySet
. (Id7f19) - Bảo đảm
entrySet()
tuân thủ API bằng việc triển khaientrySet().toArray()
,remove()
,removeAll()
vàretainAll()
, đồng thời xoá phương thức triển khaientrySet().addAll()
(I5d505)
Phiên bản 1.2.0-rc01
Ngày 17 tháng 11 năm 2021
Phát hành androidx.collection:collection:1.2.0-rc01
và androidx.collection:collection-ktx:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm các thay đổi sau.
Thay đổi về API
- Không có thay đổi nào so với phiên bản thử nghiệm trước đó.
Phiên bản 1.2.0-beta01
Ngày 13 tháng 10 năm 2021
Phát hành androidx.collection:collection:1.2.0-beta01
và androidx.collection:collection-ktx:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
- Bảo đảm
entrySet()
tuân thủ API bằng việc triển khaientrySet().toArray()
,remove()
,removeAll()
vàretainAll()
, đồng thời xoá phương thức triển khaientrySet().addAll()
(I5d505)
Phiên bản 1.2.0-alpha01
Ngày 16 tháng 12 năm 2020
Phát hành androidx.collection:collection:1.2.0-alpha01
và androidx.collection:collection-ktx:1.2.0-alpha01
. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm một hàm khởi tạo mảng vào
ArraySet
. (Id7f19)
Phiên bản 1.1.0
Phiên bản 1.1.0
Ngày 5 tháng 6 năm 2019
Phát hành androidx.collection:collection:1.1.0
và androidx.collection:collection-ktx:1.1.0
. Bạn có thể tìm các thay đổi có trong phiên bản 1.1.0 tại đây.
Dưới đây là bản tóm tắt các thay đổi từ phiên bản 1.0.0 đến 1.1.0:
Tính năng mới
- Sử dụng cách triển khai hiệu quả hơn cho các hàm
contains
vàisNotEmpty
trong cấu phần phần mềm 'collection-ktx'. (aosp/866529)
Thay đổi về API
- Thêm
putIfAbsent
vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772608) - Thêm
getOrDefault
vàoSimpleArrayMap
(aosp/772607) - Thêm
remove
hai đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
. Ngừng sử dụng các tiện ích mở rộng KTX tương ứng cho chức năng này. (aosp/772482) - Thêm
replace
hai đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772483) - Thêm
replace
ba đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772484) - Ngừng sử dụng các phương thức
delete
thừa. Phương thứcremove
cung cấp API và chức năng giống nhau và khớp với API do Maps đặc biệt sử dụng. (aosp/866053)
Sửa lỗi
- Thay đổi
SimpleArrayMap
để đồng bộ hoá bộ nhớ đệm toàn cầu nội bộ của các mảng trênSimpleArrayMap.class
thay vìArrayMap.class
. Điều này đảm bảo rằng nếu bạn chỉ đang sử dụngSimpleArrayMap
, thì bạn có thể xoáArrayMap
bằng các công cụ rút gọn mã. (aosp/934557)
Phiên bản 1.1.0-rc01
Ngày 7 tháng 5 năm 2019
Phát hành androidx.collection:collection:1.1.0-rc01
và androidx.collection:collection-ktx:1.1.0-rc01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
- Sử dụng cách triển khai hiệu quả hơn cho các hàm
contains
vàisNotEmpty
trong cấu phần phần mềm 'collection-ktx'. (aosp/866529)
Phiên bản 1.1.0-beta01
Ngày 3 tháng 4 năm 2019
Phát hành androidx.collection:collection:1.1.0-beta01
và androidx.collection:collection-ktx:1.1.0-beta01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Thay đổi về API
- Phương thức được đề cập trong ghi chú phát hành alpha03 vì thay đổi giá trị
@RestrictTo
đã bị xoá. Thư viện AndroidX (hiện tại hoặc trước đây) không sử dụng phương thức này và phương thức này không cung cấp bất kỳ chức năng nào bị thiếu trong API công khai.
Sửa lỗi
- Thay đổi
SimpleArrayMap
để đồng bộ hoá bộ nhớ đệm toàn cầu nội bộ của các mảng trênSimpleArrayMap.class
thay vìArrayMap.class
. Điều này đảm bảo rằng nếu bạn chỉ đang sử dụngSimpleArrayMap
, thì bạn có thể xoáArrayMap
bằng các công cụ rút gọn mã. (aosp/934557)
Phiên bản 1.1.0-alpha03
Ngày 13 tháng 3 năm 2019
Phát hành androidx.collection:collection:1.0.0-alpha03
và
androidx.collection:collection-ktx:1.0.0-alpha03
.
Bạn có thể xem danh sách đầy đủ các thay đổi trong phiên bản này
tại đây.
Thay đổi về API
- Phương thức trên
ArraySet
trước đây được đánh dấu là@RestrictTo(LIBRARY_GROUP)
đã được thay đổi thành@RestrictTo(LIBRARY_GROUP_PREFIX)
. Điều này hỗ trợ việc sử dụng trước đó của các thư viện AndroidX khác, hiện nằm trong các mã nhận dạng nhóm Maven khác. Phương thức này sẽ được công khai hoặc bị xoá trong 1.1.0-alpha04 vì các thư viện AndroidX khác sẽ không được nhận các API đặc biệt nếu các nhà phát triển khác không làm như vậy.
Phiên bản 1.1.0-alpha02
Ngày 30 tháng 1 năm 2019
Phát hành androidx.collection:collection 1.1.0-alpha02
và
androidx.collection:collection-ktx 1.1.0-alpha02
.
Thay đổi về API
- Ngừng sử dụng các phương thức
delete
thừa. Các phương thứcremove
cung cấp API và chức năng giống nhau và khớp với API do Maps đặc biệt sử dụng. (aosp/866053)
Phiên bản 1.1.0-alpha01
Ngày 3 tháng Mười hai, 2018
Thay đổi về API
- Thêm
putIfAbsent
vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772608) - Thêm
getOrDefault
vàoSimpleArrayMap
(aosp/772607) - Thêm
remove
hai đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
. Ngừng sử dụng các tiện ích mở rộng KTX tương ứng cho chức năng này. (aosp/772482) - Thêm
replace
hai đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772483) - Thêm
replace
ba đối số vàoLongSparseArray
,SimpleArrayMap
vàSparseArrayCompat
(aosp/772484)