Kotlin Collection เป็นชุดของคลาสและอินเทอร์เฟซสำหรับทำแอพในภาษาโปรแกรม Kotlin ที่ให้วิธีที่มีประสิทธิภาพและรัดกุมมากขึ้นในการจัดการกับคอลเล็กชันของวัตถุ มีฟังก์ชันและการดำเนินการที่หลากหลายเพื่อจัดการคอลเลกชัน เช่น การกรอง (filtering) การแมป (mapping) การเรียงลำดับ (sorting) และการจัดกลุ่ม (grouping)
คลาสคอลเลกชันที่สำคัญบางคลาสใน Kotlin ได้แก่:
- List: คอลเลกชันที่มีองค์ประกอบที่เรียงลำดับและอนุญาตให้ทำซ้ำได้
- Set: คอลเลกชันที่มีองค์ประกอบเฉพาะและไม่มีลำดับเฉพาะใดๆ
- Map: คอลเลกชันที่เก็บคู่ของคีย์-ค่าและไม่อนุญาตให้มีคีย์ที่ซ้ำกัน
นอกจากนี้ Kotlin ยังมีคลาสอื่นๆ ทำหรับการทำแอพที่เกี่ยวข้องกับคอลเลกชัน เช่น Array, Sequence และ Iterable ซึ่งนำเสนอวิธีการจัดการคอลเลกชันต่างๆ โดยรวมแล้ว Kotlin Collection ทำให้กระบวนการจัดการคอลเล็กชันง่ายขึ้น และทำให้ง่ายต่อการรับทำแอพที่กระชับและมีประสิทธิภาพ
คอลเลกชัน List
List คือชุดคำสั่งขององค์ประกอบที่สามารถมีรายการที่ซ้ำกันได้ ใน Kotlin นั้น List เป็นอินเทอร์เฟซที่นำไปใช้โดยหลายคลาส เช่น ArrayList, LinkedList และ ImmutableList ในการสร้าง List ใน Kotlin สามารถใช้ฟังก์ชัน listOf() หรือฟังก์ชัน mutableListOf() หากต้องการเพิ่ม ลบ หรือแก้ไของค์ประกอบในรายการได้ในภายหลัง
// creating a list
val list = listOf("apple", "banana", "orange")
println(list) // output: [apple, banana, orange]
// creating a mutable list
val mutableList = mutableListOf("apple", "banana", "orange")
mutableList.add("pear")
println(mutableList) // output: [apple, banana, orange, pear]
เมื่อสร้าง List แล้วสามารถเข้าถึงองค์ประกอบโดยใช้ค่าดัชนี และยังสามารถวนซ้ำรายการโดยใช้ for loop หรือฟังก์ชัน forEach()
// accessing elements of a list
val list = listOf("apple", "banana", "orange")
println(list[0]) // output: apple
// looping through a list
for (item in list) {
println(item)
} // output: apple banana orange
list.forEach {
println(it)
} // output: apple banana orange
และยังสามารถใช้การดำเนินการต่างๆ กับ List ใน Kotlin เช่น การกรอง (filtering) การแมป (mapping) การลดขนาด (reducing) การเรียงลำดับ (sorting) และการจัดกลุ่ม (grouping)
// filtering a list
val list = listOf("apple", "banana", "orange")
val filteredList = list.filter { it.startsWith("a") }
println(filteredList) // output: [apple]
// mapping a list
val mappedList = list.map { it.toUpperCase() }
println(mappedList) // output: [APPLE, BANANA, ORANGE]
// reducing a list
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.reduce { acc, i -> acc + i }
println(sum) // output: 15
// sorting a list
val sortedList = numbers.sorted()
println(sortedList) // output: [1, 2, 3, 4, 5]
// grouping a list
val words = listOf("apple", "banana", "cherry", "orange", "pear")
val groupedWords = words.groupBy { it.first() }
println(groupedWords) // output: {a=[apple], b=[banana], c=[cherry], o=[orange], p=[pear]}
คอลเลกชัน Set
Set คือชุดขององค์ประกอบที่ไม่ซ้ำแบบไม่มีลำดับ ใน Kotlin นั้น Set คืออินเทอร์เฟซที่นำไปใช้ทำแอพโดยหลายคลาส เช่น HashSet, LinkedHashSet และ TreeSet หากต้องการสร้าง Set ใน Kotlinสามารถใช้ฟังก์ชัน setOf() หรือฟังก์ชัน mutableSetOf() หากต้องการเพิ่ม ลบ หรือแก้ไของค์ประกอบใน Set ได้ในภายหลัง
// creating a set
val set = setOf("apple", "banana", "orange")
println(set) // output: [apple, banana, orange]
// creating a mutable set
val mutableSet = mutableSetOf("apple", "banana", "orange")
mutableSet.add("pear")
println(mutableSet) // output: [apple, banana, orange, pear]
เมื่อสร้าง Set แล้วสามารถเข้าถึงองค์ประกอบโดยใช้ฟังก์ชัน contains()
หรือวนซ้ำ Set โดยใช้ลูป for
หรือฟังก์ชัน forEach()
// checking if an element is in a set
val set = setOf("apple", "banana", "orange")
println(set.contains("apple")) // output: true
// looping through a set
for (item in set) {
println(item)
} // output: apple banana orange
set.forEach {
println(it)
} // output: apple banana orange
ยังสามารถใช้การดำเนินการต่างๆ กับ Set ในการทำแอพ Kotlin เช่น การเพิ่มและลบองค์ประกอบ การตัดกัน (intersecting) และการรวมชุด (unioning) และการกรอง (filtering) และการแมปองค์ประกอบ (mapping)
// adding an element to a set
val set = mutableSetOf("apple", "banana", "orange")
set.add("pear")
println(set) // output: [apple, banana, orange, pear]
// removing an element from a set
set.remove("banana")
println(set) // output: [apple, orange, pear]
// intersecting two sets
val set1 = setOf(1, 2, 3, 4, 5)
val set2 = setOf(3, 4, 5, 6, 7)
val intersectedSet = set1.intersect(set2)
println(intersectedSet) // output: [3, 4, 5]
// unioning two sets
val unionedSet = set1.union(set2)
println(unionedSet) // output: [1, 2, 3, 4, 5, 6, 7]
// filtering a set
val filteredSet = set.filter { it.startsWith("a") }
println(filteredSet) // output: [apple]
// mapping a set
val mappedSet = set.map { it.toUpperCase() }
println(mappedSet) // output: [APPLE, ORANGE, PEAR]
คอลเลกชัน Map
Map คือชุดของคู่คีย์-ค่า โดยที่แต่ละคีย์จะไม่ซ้ำกัน ใน Kotlin Map เป็นอินเทอร์เฟซที่นำไปใช้ทำแอพโดยหลายคลาส เช่น HashMap
, LinkedHashMap
และ TreeMap
ในการสร้าง Map ใน Kotlin สามารถใช้ฟังก์ชัน mapOf()
หรือฟังก์ชัน mutableMapOf()
หากต้องการเพิ่ม ลบ หรือแก้ไขคู่คีย์-ค่าใน Map ได้ในภายหลัง
// creating a map
val map = mapOf("apple" to 1, "banana" to 2, "orange" to 3)
println(map) // output: {apple=1, banana=2, orange=3}
// creating a mutable map
val mutableMap = mutableMapOf("apple" to 1, "banana" to 2, "orange" to 3)
mutableMap["pear"] = 4
println(mutableMap) // output: {apple=1, banana=2, orange=3, pear=4}
เมื่อสร้าง Map แล้วสามารถเข้าถึงค่าของมันได้โดยใช้ฟังก์ชัน get()
หรือตัวดำเนินการ []
ด้วยค่าคีย์ และยังสามารถวนซ้ำแผนที่โดยใช้ฟังก์ชัน “for” หรือ “forEach()”
// accessing values of a map
val map = mapOf("apple" to 1, "banana" to 2, "orange" to 3)
println(map["apple"]) // output: 1
// looping through a map
for ((key, value) in map) {
println("$key -> $value")
} // output: apple -> 1, banana -> 2, orange -> 3
map.forEach {
println("${it.key} -> ${it.value}")
} // output: apple -> 1, banana -> 2, orange -> 3
สามารถใช้การดำเนินการต่างๆ กับ Map ใน Kotlin เช่น การเพิ่มและลบคู่คีย์-ค่า การกรอง (filtering) และการจับคู่ค่า (mapping) และการดึงคีย์และค่า (retrieving keys, values)
// adding a key-value pair to a map
val mutableMap = mutableMapOf("apple" to 1, "banana" to 2, "orange" to 3)
mutableMap["pear"] = 4
println(mutableMap) // output: {apple=1, banana=2, orange=3, pear=4}
// removing a key-value pair from a map
mutableMap.remove("banana")
println(mutableMap) // output: {apple=1, orange=3, pear=4}
// filtering values of a map
val filteredMap = mutableMap.filterValues { it > 2 }
println(filteredMap) // output: {orange=3, pear=4}
// mapping values of a map
val mappedMap = mutableMap.mapValues { it.value * 2 }
println(mappedMap) // output: {apple=2, orange=6, pear=8}
// getting keys and values of a map
val keys = mutableMap.keys
println(keys) // output: [apple, orange, pear]
val values = mutableMap.values
println(values) // output: [1, 3, 4]
คอลเลกชันเป็นส่วนสำคัญของการรับทำแอพในโปรแกรม Kotlin โดยได้จัดเตรียมเฟรมเวิร์กการรวบรวมที่แข็งแกร่งและมีประสิทธิภาพ ในบทความนี้ เราได้สำรวจคอลเลกชันหลัก 3 ประเภทใน Kotlin: List, Set และ Map เราได้กล่าวถึงการสร้าง การเข้าถึงองค์ประกอบ การวนรอบองค์ประกอบ และการใช้การดำเนินการกับองค์ประกอบเหล่านั้น
ด้วยการเรียนรู้ Kotlin collection frameworkจะสามารถรับทำแอพที่มีประสิทธิภาพและรัดกุมมากขึ้น และหลีกเลี่ยงข้อผิดพลาดทั่วไปในการทำแอพได้มากมาย ไม่ว่าจะรับทำแอพในโครงการขนาดเล็กหรือใหญ่ คอลเล็กชันจะเป็นส่วนสำคัญของโค้ดเสมอ