Skip to Content

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

AspectArrayList
SizeFixedMutableList có thể thay đổi
PerformanceTốt hơn với primitivesWrapper objects
NullabilityCó thể nullThường non-null
Use caseInterop với Java, performanceGeneral 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