Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn .Sử dụng bộ sưu tập để sắp xếp ngăn nắp những trang
Bộ sưu tập
androidx.collection
Tài liệu tham khảo API
Giảm tác động ảnh hưởng của bộ sưu tập hiện có và bộ sưu tập mới ( có size nhỏ ) lên bộ nhớ .
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 7 năm 2022 |
1.2.0 |
– |
– |
1.3.0-alpha02 |
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 tàng trữ Google Maven vào dự án Bất Động Sản. Đọc nội dung Kho tàng trữ Maven của Google để biết thêm thông tin .
Thêm phần phụ thuộc cho cấu phần mềm bạn cần trong tệp build.gradle
cho
ứng dụng hoặc mô-đun:
Groovy
dependencies {
def collection_version = "1.2.0"
// Java language implementation
implementation "androidx.collection:collection:$collection_version"
// Kotlin
implementation "androidx.collection:collection-ktx:$collection_version"
}
Kotlin
dependencies {
val collection_version = "1.2.0"
// Java language implementation
implementation("androidx.collection:collection:$collection_version")
// Kotlin
implementation("androidx.collection:collection-ktx:$collection_version")
}
Để biết thêm thông tin về những 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 hoàn toàn có thể giúp chúng tôi cải tổ 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 sáng tạo cải tổ thư viện này. Vui lòng xem những lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn hoàn toàn có thể thêm lượt bầu chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao .
Báo lỗi mới
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.3.0
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 chứa những cam kết này.
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ộng AbstractMutableCollection
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ải T?
:
ArraySet.contains(null)
ArraySet.add(null)
ArraySet.remove(null)
- Các lệnh gọi sau có loại trả về
T?
, không phải T!
:
ArraySet.valueAt(n)
ArraySet.removeAt(n)
ArraySet().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ụng set.toTypedArray()
set.toArray(array)
– sử dụng set.forEachIndexed(array::set)
- 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ủa SparseArrayCompat
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)
-
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ủa size()
nhưng trong phạm vi dung lượng ban đầu đã cung cấp.
Thay đổi này cũng vận dụng giá trị null đúng chuẩn cho một số ít 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 khai entrySet().toArray()
, remove()
, removeAll()
và retainAll()
, đồng thời xoá phương thức triển khai entrySet().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 khai entrySet().toArray()
, remove()
, removeAll()
và retainAll()
, đồng thời xoá phương thức triển khai entrySet().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ào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772608)
- Thêm
getOrDefault
vào SimpleArrayMap
(aosp/772607)
- Thêm
remove
hai đối số vào LongSparseArray
, 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ào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772483)
- Thêm
replace
ba đối số vào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772484)
- Ngừng sử dụng các phương thức
delete
thừa. Phương thức remove
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ên SimpleArrayMap.class
thay vì ArrayMap.class
. Điều này đảm bảo rằng nếu bạn chỉ đang sử dụng SimpleArrayMap
, 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ể tìm thấy các cam kết có 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ên SimpleArrayMap.class
thay vì ArrayMap.class
. Điều này đảm bảo rằng nếu bạn chỉ đang sử dụng SimpleArrayMap
, 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ức remove
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ào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772608)
- Thêm
getOrDefault
vào SimpleArrayMap
(aosp/772607)
- Thêm
remove
hai đối số vào LongSparseArray
, 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ào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772483)
- Thêm
replace
ba đối số vào LongSparseArray
, SimpleArrayMap
và SparseArrayCompat
(aosp/772484)