📊 Mảng (Array)
🎯 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
Phần tiêu đề “💡 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
Phần tiêu đề “📝 Tạo Array”// Generic arrayval 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 arraysval empty = emptyArray<Int>()val intEmpty = IntArray(0)🔍 Truy cập & Duyệt
Phần tiêu đề “🔍 Truy cập & Duyệt”val arr = arrayOf("a", "b", "c")
// Indexprintln(arr[0]) // aprintln(arr.getOrNull(10)) // null
// Propertiesprintln(arr.size) // 3println(arr.indices) // 0..2
// Iterationfor (item in arr) println(item)for (i in arr.indices) println("$i: ${arr[i]}")for ((i, v) in arr.withIndex()) println("$i: $v")🔄 Conversions
Phần tiêu đề “🔄 Conversions”val arr = arrayOf(1, 2, 3)
// To Listval list = arr.toList()val mutableList = arr.toMutableList()
// From Listval backToArray = list.toTypedArray()val intArray = list.toIntArray()
// To primitive arrayval intArr = arr.toIntArray()🎯 Array vs List
Phần tiêu đề “🎯 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 |
🛠️ Thực hành
Phần tiêu đề “🛠️ 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
Phần tiêu đề “✅ 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