Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีสร้างและเริ่มต้น Array ใน Kotlin พร้อมค่า

ภาพรวม

Array ใน Kotlin เป็นโครงสร้างข้อมูลที่เก็บค่าประเภทเดียวกันในหน่วยความจำติดต่อกัน เข้าถึงได้ผ่านดัชนี (index) เริ่มจาก 0 มีขนาดคงที่และแก้ไขค่าได้ (mutable)

วิธีสร้าง Array

1. ใช้ arrayOf() - วิธีง่ายที่สุด

fun main() {
    // Array ของ String
    val subjects = arrayOf("Java", "C", "C++", "C#", "Kotlin")

    // Array ของ Int
    val numbers = arrayOf(1, 2, 3, 4, 5)

    // Array แบบผสม (Any)
    val mixed = arrayOf("Hello", 123, 3.14, true)

    // วนลูปพิมพ์ค่า
    for (i in subjects.indices) {
        println("Subject[$i] = ${subjects[i]}")
    }
    // หรือใช้ forEachIndexed
    subjects.forEachIndexed { index, value ->
        println("Subject[$index] = $value")
    }
}

2. ใช้ Array Constructor - สำหรับสร้างตามรูปแบบ

fun main() {
    // Array ขนาด 5 ค่าเริ่มต้น = index * 2
    val myArray = Array(5) { i -> i * 2 } // [0, 2, 4, 6, 8]

    // Array ของ Object
    data class Point(val x: Int, val y: Int)
    val points = Array(3) { index -> Point(index * 10, index * 20) }

    myArray.forEachIndexed { i, v -> println("[$i] = $v") }
}

3. Primitive Type Arrays - ประหยัดหน่วยความจำ

fun main() {
    val intArray = intArrayOf(1, 2, 3, 4, 5)     // IntArray
    val doubleArray = doubleArrayOf(1.1, 2.2)    // DoubleArray
    val booleanArray = booleanArrayOf(true, false) // BooleanArray
    val charArray = charArrayOf('a', 'b', 'c')   // CharArray
    val longArray = longArrayOf(100L, 200L)      // LongArray
    // รองรับ: ByteArray, ShortArray, FloatArray

    // Constructor แบบ Primitive
    val zeros = IntArray(10) { 0 } // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}

4. emptyArray() และ arrayOfNulls()

fun main() {
    // Array ว่างขนาด 0
    val empty = emptyArray<String>() // []

    // Array ขนาด 3 เต็มไปด้วย null (ต้องเป็น nullable type)
    val nulls: Array<String?> = arrayOfNulls(3) // [null, null, null]
}

คุณสมบัติสำคัญของ Array

คุณสมบัติรายละเอียด
ขนาดคงที่ไม่สามารถเพิ่ม/ลดขนาดได้หลังสร้าง
Mutableแก้ไขค่าผ่านดัชนีได้: arr[0] = "New"
เข้าถึงแบบสุ่มO(1) ผ่าน index
Primitive Arraysมีคลาสเฉพาะ (IntArray, DoubleArray...) ไม่ใช้ Generic

การแปลงระหว่าง List และ Array

fun main() {
    val list = listOf("A", "B", "C")
    val array = list.toTypedArray() // List -> Array

    val backToList = array.toList() // Array -> List (Immutable)
    val mutableList = array.toMutableList() // Array -> MutableList
}