Array trong Kotlin
🎯 Mục tiêu: Hiểu Array - cấu trúc dữ liệu kích thước cố định, khi nào dùng Array thay vì List.
💡 Khái niệm
Array có kích thước cố định, không thể thêm/xóa phần tử sau khi tạo.
val numbers = arrayOf(1, 2, 3, 4, 5)
numbers[0] = 10 // OK - thay đổi giá trị
// numbers.add(6) // ❌ Không có method này📝 Tạo Array
// Generic array
val arr1 = arrayOf(1, 2, 3)
val arr2 = arrayOfNulls<String>(5) // [null, null, null, null, null]
val arr3 = Array(5) { it * 2 } // [0, 2, 4, 6, 8]
// Primitive arrays (tối ưu performance)
val intArr = intArrayOf(1, 2, 3)
val doubleArr = doubleArrayOf(1.0, 2.0, 3.0)
val boolArr = booleanArrayOf(true, false)
val charArr = charArrayOf('a', 'b', 'c')
// Empty arrays
val empty = emptyArray<Int>()
val intEmpty = IntArray(0)🔍 Truy cập & Duyệt
val arr = arrayOf("a", "b", "c")
// Index
println(arr[0]) // a
println(arr.getOrNull(10)) // null
// Properties
println(arr.size) // 3
println(arr.indices) // 0..2
// Iteration
for (item in arr) println(item)
for (i in arr.indices) println("$i: ${arr[i]}")
for ((i, v) in arr.withIndex()) println("$i: $v")🔄 Conversions
val arr = arrayOf(1, 2, 3)
// To List
val list = arr.toList()
val mutableList = arr.toMutableList()
// From List
val backToArray = list.toTypedArray()
val intArray = list.toIntArray()
// To primitive array
val intArr = arr.toIntArray()🎯 Array vs List
| Aspect | Array | List |
|---|---|---|
| Size | Fixed | MutableList có thể thay đổi |
| Performance | Tốt hơn với primitives | Wrapper objects |
| Nullability | Có thể null | Thường non-null |
| Use case | Interop với Java, performance | General purpose |
[!TIP] Mặc định dùng List. Chỉ dùng Array khi cần interop với Java hoặc performance critical.
🛠️ Thực hành
fun main() {
// TODO: Tạo matrix 3x3 và in ra
}Lời giải:
fun main() {
val matrix = Array(3) { row ->
IntArray(3) { col -> row * 3 + col + 1 }
}
// In matrix
for (row in matrix) {
println(row.joinToString(" "))
}
// 1 2 3
// 4 5 6
// 7 8 9
}✅ Checklist
- Tạo Array với
arrayOf(),Array(size) { } - Sử dụng primitive arrays cho performance
- Convert giữa Array và List
- Biết khi nào dùng Array vs List
Tiếp theo: Collections Operations
Last updated on