แมปและเซต
คอลเลกชันแบบคีย์-ค่าและค่าที่ไม่ซ้ำ
แมปและเซต เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ