Collections là gì? Theo Google dịch thì nó là “bộ sưu tập”, mình hiểu nó là 1 kiểu tập hợp các phần tử có cùng kiểu dữ liệu hoặc không (mảng, danh sách).
Array (mảng)
Cái này thì cơ bản quá rồi, chỉ khác là trong Kotlin sử dụng arrayOf()
để xây dựng 1 mảng.
Đây là mảng tuần tự, phần tử trong mảng được đánh chỉ số tăng dần từ 0.
Nếu một mảng các phần tử toàn số nguyên, biên dịch sẽ tự hiểu đó là mảng kiểu số nguyên Int, đúng với các kiểu dữ liệu khác.
Ngoài ra Kotlin có mảng hỗn hợp, các phần tử khác kiểu dữ liệu .Nếu không muốn điều này xảy ra ta dùng arrayOf<data_type>
để xác định trước kiểu của phần tử trong mảng.
1 | //array Integer |
List (Danh sách)
List
thì khác gì so với Array
, đơn giản là List
có thể thay đổi, thêm, xóa phần tử còn Array thì không.
Class List
là một interface và nên dùng ArrayList
để triển khai nó.
Mỗi phần từ trong List
được đánh chỉ mục tăng dần từ 0.
Ta có thể dùng listOf
để tạo 1 list, nhưng sẽ không có các phương thức để thêm, bớt phần tử, đây là list cố định:
1 | //list Integer |
Triển khai List bằng ArrayList
, dùng arrayListOf()
để tạo, ta có sẵn các phương thức để thêm, bớt, đây là list động:
1 | val arrListInt = arrayListOf<Int>(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) |
Ta cũng có thể triển khai bằng MutableList
, dùng mutableListOf
để tạo, nhưng với phiên bản Kotlin hiện tại nó chính là một thể hiện của ArrayList
, dó đó vào thời điểm viết bài nó không khác gì ArrayList
.
1 | val mutableList = mutableListOf<String>("john", "emily", "bomi", "ji-young") |
Map
Map
thì khác gì List
với Array
?
Đơn giản là List
và Array
các phần tử được đánh index (chỉ mục) tuần tự tăng dần từ 0, hay mỗi phần tử có key chính là chỉ mục (số nguyên) tương ứng vị trí của phần tử đó.
Quay lại với Map
, ta sẽ tự đi định nghĩa key cho phần tử, key có thể là số, là chuỗi, mỗi phần tử khác nhau có key khác nhau, để tìm đến một phần tử, ta chỉ việc gọi key của nó.
Class Map
là một interface, ta nên dùng mutableMapOf()
để triển khai nó.
Ta có thể dùng mapOf()
để tạo 1 map, nhưng nó là Map cố định, hay còn gọi là Map
chỉ đọc:
1 | //key is String, value is String |
Triển khai Map
bằng mutableMapOf
, ta sử dụng mutableMapOf()
để tạo một Map
, đây là Map động, có thể thay đổi, thêm bớt các phần tử:
1 | val mutableMapA = mutableMapOf<String, String>("name" to "bomi", "sex" to "female", "address" to "korea") |
Từ nay về sau, khi khởi tạo biến, mình sẽ không gán trước kiểu của biến nữa, sẽ gán thẳng giá trị luôn. Kotlin không yêu cầu phải chỉ ra kiểu của biến:
1 | // thay vi |
URL QR