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

แมปและเซต

คอลเลกชันแบบคีย์-ค่าและค่าที่ไม่ซ้ำ

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

แมปและเซต

แมปใช้เก็บคู่คีย์กับค่า โดยคีย์แต่ละรายการต้องไม่ซ้ำกันและชี้ไปยังค่าหนึ่งค่า คล้ายพจนานุกรม

เซตใช้เก็บรายการที่ไม่ซ้ำกัน ไม่มีรายการซ้ำ และไม่รับประกันลำดับ

ทั้งสองอย่างเป็นชนิดคอลเลกชันนอกเหนือจากลิสต์ และมีประโยชน์เมื่อต้องการค้นหาค่าหรือเก็บรายการที่ไม่ซ้ำกัน

การสร้างแมป

ใช้ mapOf() ร่วมกับคู่ key to value เพื่อสร้างแมปแบบอ่านอย่างเดียว

คีย์ต้องไม่ซ้ำกัน ในตัวอย่างนี้ เราจับคู่ชื่อผลไม้กับราคา

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices)
    println("Size: ${prices.size}")
}

การค้นหาค่า

อ่านค่าโดยใช้วงเล็บเหลี่ยมและคีย์ หากไม่มีคีย์นั้น จะได้ค่า null

ใช้ตัวดำเนินการเอลวิส ?: เพื่อระบุค่าเริ่มต้นเมื่อไม่มีคีย์ดังกล่าว

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices["apple"])
    println(prices["cherry"] ?: "not found")
}

การวนซ้ำผ่านแมป

ลูป for ที่วนผ่านแมปจะมอบรายการคู่แต่ละรายการให้คุณ คุณสามารถแยกโครงสร้างรายการนั้นเป็น key และ value ได้

นี่เป็นวิธีทั่วไปในการประมวลผลทุกคู่

fun main() {
    val ages = mapOf("Ada" to 36, "Bob" to 24)
    for ((name, age) in ages) {
        println("$name is $age")
    }
}

แมปแบบเปลี่ยนแปลงได้

ใช้ mutableMapOf() เมื่อต้องการเพิ่มหรือเปลี่ยนแปลงรายการคู่

การกำหนดค่าให้คีย์ใหม่จะเป็นการเพิ่มคีย์นั้น ส่วนการกำหนดค่าให้คีย์ที่มีอยู่แล้วจะเป็นการแทนที่ค่าของคีย์นั้น

fun main() {
    val stock = mutableMapOf("pens" to 5)
    stock["books"] = 10
    stock["pens"] = 8
    println(stock)
}

การนำรายการออกจากแมป

เรียกใช้ remove() พร้อมคีย์เพื่อลบรายการคู่นั้นออกจากแมปแบบเปลี่ยนแปลงได้

ใช้ containsKey() เพื่อตรวจสอบว่ามีคีย์นั้นอยู่ก่อนนำไปใช้งาน

fun main() {
    val m = mutableMapOf("a" to 1, "b" to 2)
    m.remove("a")
    println(m.containsKey("a"))
    println(m)
}

คีย์และค่า

แมปทุกชนิดจะแสดงคอลเลกชัน keys และ values

ใช้คอลเลกชันเหล่านี้เมื่อคุณสนใจเพียงด้านใดด้านหนึ่งของคู่เท่านั้น

fun main() {
    val prices = mapOf("apple" to 3, "banana" to 2)
    println(prices.keys)
    println(prices.values)
}

การสร้างเซต

ใช้ setOf() เพื่อสร้างเซตแบบอ่านอย่างเดียว ค่าที่ซ้ำกันจะถูกตัดออกโดยอัตโนมัติ

ด้วยเหตุนี้ เซตจึงเหมาะอย่างยิ่งสำหรับรวบรวมรายการที่ไม่ซ้ำกัน

fun main() {
    val tags = setOf("kotlin", "android", "kotlin")
    println(tags)
    println("Size: ${tags.size}")
}

การตรวจสอบสมาชิก

เซตโดดเด่นในการตรวจสอบสมาชิกอย่างรวดเร็ว ใช้ in หรือ contains() เพื่อตรวจสอบว่ามีค่าอยู่หรือไม่

โดยทั่วไป การตรวจสอบเซตจะเร็วกว่าการไล่ดูรายการทีละรายการ

fun main() {
    val allowed = setOf("admin", "editor")
    println("admin" in allowed)
    println(allowed.contains("guest"))
}

เซตที่เปลี่ยนแปลงได้และการลบค่าซ้ำ

ใช้ mutableSetOf() เพื่อสร้างเซตและเพิ่มค่าไปเรื่อย ๆ การเพิ่มค่าที่มีอยู่แล้วจะไม่ทำอะไร

เคล็ดลับง่าย ๆ คือเรียก toSet() กับรายการเพื่อลบค่าที่ซ้ำกัน

fun main() {
    val nums = listOf(1, 2, 2, 3, 3, 3)
    val unique = nums.toSet()
    println(unique)
}

แมปกับเซต

เลือกใช้ แมป เมื่อต้องการเชื่อมโยงคีย์กับค่า เช่น ชื่อผู้ใช้กับโพรไฟล์

เลือกใช้ เซต เมื่อสนใจเพียงว่าสิ่งนั้นมีอยู่หรือไม่ และไม่ต้องการให้มีค่าซ้ำ

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

ทดสอบความเข้าใจเกี่ยวกับแมปและเซต

สรุปทบทวน

แมปจัดเก็บคู่คีย์กับค่าโดยใช้ mapOf() / mutableMapOf() และค้นหาด้วยคีย์ พร้อมจัดการคีย์ที่ไม่มีอยู่ด้วย ?:

เซตจัดเก็บรายการที่ไม่ซ้ำกันด้วย setOf() / mutableSetOf() และตรวจสอบสมาชิกได้อย่างรวดเร็ว

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

บทเรียน “แมปและเซต” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แมปและเซต”

คอลเลกชันแบบคีย์-ค่าและค่าที่ไม่ซ้ำ คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “แมปและเซต” ใช้เวลานานแค่ไหน

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

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

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

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

  1. รายการและรายการที่เปลี่ยนแปลงได้
  2. แมปและเซต
  3. map, filter, forEach
  4. แลมบ์ดาและฟังก์ชันระดับสูง
← กลับไปที่ Android Academy