0Pricing
Android Academy · บทเรียน

คอลเลกชัน Kotlin

ทำงานกับ List, Set และ Map ใช้ตัวดำเนินการเชิงฟังก์ชัน เช่น filter, map, sortedBy, forEach, find, any และ all รวมถึงต่อการดำเนินการเพื่อแปลงข้อมูลอย่างกระชับ

คอลเลกชัน Kotlin เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 6 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 6 บทเรียน

ภาพรวมคอลเลกชัน

ไลบรารีมาตรฐานของ Kotlin มีคอลเลกชันหลักสามประเภท:

  • รายการ — ลำดับของสมาชิกที่มีการเรียงลำดับ (มีค่าซ้ำได้)
  • เซต — สมาชิกไม่ซ้ำกัน และไม่มีลำดับที่แน่นอน
  • แมป — คู่คีย์กับค่า โดยคีย์ต้องไม่ซ้ำกัน

แต่ละประเภทมีรุ่นเปลี่ยนแปลงไม่ได้ (อ่านได้อย่างเดียว) และรุ่นเปลี่ยนแปลงได้ (แก้ไขได้)

รายการ: listOf กับ mutableListOf

สร้างรายการด้วยฟังก์ชันสร้าง:

fun main() {
    // Immutable — cannot add/remove items
    val fruits = listOf("Apple", "Banana", "Cherry")
    println(fruits[0])       // Apple
    println(fruits.size)     // 3

    // Mutable — can modify
    val scores = mutableListOf(10, 20, 30)
    scores.add(40)
    scores.removeAt(0)       // remove index 0
    println(scores)          // [20, 30, 40]
}

แมป: คู่คีย์กับค่า

ใช้ mapOf และ mutableMapOf เพื่อสร้างแมป เข้าถึงค่าด้วยคีย์:

fun main() {
    val capitals = mapOf(
        "Turkey" to "Ankara",
        "Germany" to "Berlin",
        "Japan" to "Tokyo"
    )

    println(capitals["Turkey"])      // Ankara
    println(capitals["France"])      // null (not found)
    println(capitals.getOrDefault("France", "Unknown")) // Unknown

    // Iterate
    for ((country, city) in capitals) {
        println("$country -> $city")
    }
}

filter — เลือกสมาชิก

filter จะคืนค่ารายการใหม่ที่มีเฉพาะสมาชิกซึ่งตรงตามเงื่อนไข:

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)

    val evens = numbers.filter { it % 2 == 0 }
    println(evens)   // [2, 4, 6, 8]

    val names = listOf("Alice", "Bob", "Anna", "Charlie")
    val aNames = names.filter { it.startsWith("A") }
    println(aNames)  // [Alice, Anna]
}

map — แปลงสมาชิก

map จะแปลงสมาชิกทุกตัวและคืนค่ารายการใหม่:

fun main() {
    val prices = listOf(10.0, 20.0, 30.0)

    // Apply 10% tax
    val withTax = prices.map { it * 1.1 }
    println(withTax)  // [11.0, 22.0, 33.0]

    val names = listOf("alice", "bob", "carol")
    val upper = names.map { it.uppercase() }
    println(upper)    // [ALICE, BOB, CAROL]
}

sortedBy และ sortedByDescending

จัดเรียงรายการตามคุณสมบัติ:

data class Student(val name: String, val grade: Int)

fun main() {
    val students = listOf(
        Student("Alice", 88),
        Student("Bob", 95),
        Student("Carol", 72)
    )

    val byGrade = students.sortedByDescending { it.grade }
    for (s in byGrade) println("${s.name}: ${s.grade}")
    // Bob: 95
    // Alice: 88
    // Carol: 72
}

forEach และ find

ฟังก์ชันคอลเลกชันที่มีประโยชน์อีกสองรายการ:

  • forEach — วนซ้ำโดยไม่สร้างผลลัพธ์
  • find — คืนค่าสมาชิกตัวแรกที่ตรงตามเงื่อนไข หรือคืนค่า null

การเชื่อมการทำงาน

เชื่อมการทำงานหลายรายการเพื่อแปลงข้อมูลได้อย่างกระชับ:

data class Product(val name: String, val price: Double, val inStock: Boolean)

fun main() {
    val products = listOf(
        Product("Laptop", 999.0, true),
        Product("Mouse", 29.0, false),
        Product("Keyboard", 79.0, true),
        Product("Monitor", 349.0, true)
    )

    // In-stock products under $500, sorted by price
    val result = products
        .filter { it.inStock && it.price < 500 }
        .sortedBy { it.price }
        .map { "${it.name}: ${it.price}" }

    result.forEach { println(it) }
}

any, all, count

ฟังก์ชันรวมผลสำหรับหาคำตอบอย่างรวดเร็ว:

  • any { condition } — เป็น true หากมีสมาชิกอย่างน้อยหนึ่งตัวตรงตามเงื่อนไข
  • all { condition } — เป็น true หากสมาชิกทุกตัวตรงตามเงื่อนไข
  • count { condition } — จำนวนสมาชิกที่ตรงตามเงื่อนไข
  • sumOf { it.price } — ผลรวมของคุณสมบัติเชิงตัวเลข

ตรวจสอบความเข้าใจ

คุณจะใช้ฟังก์ชันใดเพื่อเลือกเฉพาะสมาชิกในรายการที่ตรงตามเงื่อนไข

สรุป: คอลเลกชันของ Kotlin

ขณะนี้คุณสามารถทำงานกับข้อมูลใน Kotlin ได้อย่างมีประสิทธิภาพ:

  • listOf / mutableListOf, mapOf / mutableMapOf
  • filter — เลือกสมาชิกที่ตรงตามเงื่อนไข
  • map — แปลงสมาชิก
  • sortedBy / sortedByDescending
  • เชื่อมการทำงานเพื่อสร้างกระบวนการแปลงข้อมูลที่เป็นระเบียบและอ่านง่าย

ถัดไป: แสดงรายการบนหน้าจอด้วย RecyclerView

คำถามที่พบบ่อย

บทเรียน “คอลเลกชัน Kotlin” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คอลเลกชัน Kotlin” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 6 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คอลเลกชัน Kotlin”

ทำงานกับ List, Set และ Map ใช้ตัวดำเนินการเชิงฟังก์ชัน เช่น filter, map, sortedBy, forEach, find, any และ all รวมถึงต่อการดำเนินการเพื่อแปลงข้อมูลอย่างกระชับ คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 6 บทเรียน

บทเรียน “คอลเลกชัน Kotlin” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม

ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คอลเลกชัน Kotlin
  2. พื้นฐาน RecyclerView
  3. เหตุการณ์คลิกใน RecyclerView
  4. SharedPreferences
  5. ค่ากำหนดของ DataStore
  6. อะแดปเตอร์และ DiffUtil
← กลับไปที่ Android Academy