การจัดกลุ่มและการแบ่งส่วน
จัดระเบียบข้อมูล
การจัดกลุ่มและการแบ่งส่วน เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
การจัดระเบียบข้อมูล
บางครั้งคุณจำเป็นต้องแบ่งคอลเลกชันออกเป็นหมวดหมู่ Kotlin มี groupBy สำหรับจัดองค์ประกอบลงกลุ่มตามคีย์ และมี partition สำหรับแบ่งออกเป็นสองรายการตามเงื่อนไข
ฟังก์ชัน partition
partition แบ่งคอลเลกชันออกเป็น คู่ของรายการสองรายการ ได้แก่ องค์ประกอบที่ตรงตามเงื่อนไข และองค์ประกอบที่ไม่ตรงตามเงื่อนไข
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6)
val (even, odd) = numbers.partition { it % 2 == 0 }
println("Even: $even")
println("Odd: $odd")
}การแยกค่าจากคู่
เนื่องจาก partition ส่งคืนค่าเป็น Pair คุณจึงสามารถแยกค่าออกเป็นตัวแปรที่ตั้งชื่อไว้สองตัวได้โดยตรง ดังที่แสดงไว้ด้านบน นอกจากนี้คุณยังเข้าถึง .first และ .second ได้ด้วย
fun main() {
val result = listOf(10, -5, 3, -8).partition { it >= 0 }
println(result.first)
println(result.second)
}ฟังก์ชัน groupBy
groupBy สร้าง Map ซึ่งแต่ละคีย์มาจากตัวเลือก และค่าคือรายการขององค์ประกอบที่ใช้คีย์เดียวกัน
fun main() {
val words = listOf("apple", "banana", "avocado", "cherry")
val byFirstLetter = words.groupBy { it.first() }
println(byFirstLetter)
}การจัดกลุ่มตามคีย์ที่คำนวณได้
คีย์อาจเป็นค่าใด ๆ ที่คำนวณได้ เช่น ความยาวของสตริงหรือเศษเหลือ
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7)
val byRemainder = numbers.groupBy { it % 3 }
println(byRemainder)
}groupBy พร้อมการแปลงค่า
groupBy รับแลมบ์ดาที่สองเพื่อแปลงค่าแต่ละค่าก่อนนำไปใส่ในกลุ่ม
fun main() {
val words = listOf("red", "rose", "blue", "berry")
val grouped = groupExample(words)
println(grouped)
}
fun groupExample(words: List<String>) =
words.groupBy({ it.first() }, { it.uppercase() })การวนซ้ำผ่านกลุ่ม
เนื่องจาก groupBy ส่งคืนค่าเป็น Map คุณจึงสามารถวนซ้ำผ่านรายการเพื่อประมวลผลแต่ละกลุ่มได้
fun main() {
val animals = listOf("cat", "cow", "dog", "duck")
val groups = animals.groupBy { it.first() }
for ((letter, list) in groups) {
println("$letter -> $list")
}
}การนับด้วย groupingBy
หากต้องการนับแยกตามคีย์ การใช้ groupingBy ตามด้วย eachCount จะมีประสิทธิภาพและอ่านเข้าใจได้ชัดเจน
fun main() {
val letters = listOf("a", "b", "a", "c", "b", "a")
val counts = letters.groupingBy { it }.eachCount()
println(counts)
}partition เทียบกับ filter
เมื่อคุณต้องการเฉพาะองค์ประกอบที่ตรงตามเงื่อนไข ให้ใช้ filter แต่เมื่อคุณต้องการทั้งองค์ประกอบที่ตรงและไม่ตรงตามเงื่อนไข partition จะดำเนินการให้ในรอบเดียวและส่งคืนรายการทั้งสองรายการ
fun main() {
val ages = listOf(15, 22, 17, 30, 12)
val (adults, minors) = ages.partition { it >= 18 }
println("Adults: $adults, Minors: $minors")
}การเลือกใช้ groupBy หรือ partition
ใช้ partition เมื่อต้องการแบ่งเป็นสองกลุ่มพอดีตามเงื่อนไขแบบใช่หรือไม่ใช่ ใช้ groupBy เมื่ออาจมีหลายกลุ่มที่จัดตามคุณสมบัติบางอย่าง
การจัดกลุ่มในทางปฏิบัติ
การจัดกลุ่มและการแบ่งส่วนช่วยแทนที่ลูปที่เขียนเองอย่างยืดยาวด้วยแมปและรายการ ทั้งยังสื่อเจตนาได้ชัดเจนและลดข้อผิดพลาดจากการจัดการข้อมูลประกอบ
ตรวจสอบความเข้าใจ
partition ส่งคืนค่าอะไร
สรุปทบทวน
คุณได้เรียนรู้การใช้ partition เพื่อแบ่งออกเป็นสองรายการตามเงื่อนไข และใช้ groupBy เพื่อจัดองค์ประกอบลงในแมปตามคีย์ รวมถึงใช้ groupingBy().eachCount() สำหรับการนับ ต่อไปคุณจะได้ลดคอลเลกชันให้เหลือค่าเดียวด้วยการรวมค่า
เรียนรู้ Kotlin ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 51
- บทเรียน
- 203
คำถามที่พบบ่อย
บทเรียน “การจัดกลุ่มและการแบ่งส่วน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดกลุ่มและการแบ่งส่วน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดกลุ่มและการแบ่งส่วน”
จัดระเบียบข้อมูล คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดกลุ่มและการแบ่งส่วน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกรองและการแมป
- การจัดกลุ่มและการแบ่งส่วน
- การรวมค่า
- การสร้างความสัมพันธ์และการทำให้แบน