Kotlin入門教學:陣列與列表(二)
發布日期:2023/12/15
瀏覽次數:467
Kotlin提供了豐富的集合操作,使得對集合進行過濾、轉換、排序等處理變得非常簡潔和易讀。這一篇將詳細介紹一些常用的集合操作方法,並透過範例說明它們的使用。
map
map
方法用於將集合中的每個元素進行轉換,生成一個新的集合。
範例:將數字集合轉換為其平方
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println("原始數字: $numbers")
println("平方數字: $squaredNumbers")
輸出:
原始數字: [1, 2, 3, 4, 5]
平方數字: [1, 4, 9, 16, 25]
filter
filter
方法用於過濾集合中的元素,返回符合條件的元素組成的新集合。
範例:過濾出偶數
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
println("原始數字: $numbers")
println("偶數: $evenNumbers")
輸出:
原始數字: [1, 2, 3, 4, 5]
偶數: [2, 4]
reduce
reduce
方法用於將集合中的元素進行累積操作。
範例:計算數字的總和
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.reduce { acc, i -> acc + i }
println("原始數字: $numbers")
println("總和: $sum")
輸出:
原始數字: [1, 2, 3, 4, 5]
總和: 15
sorted
sorted
方法用於將集合中的元素進行排序。
範例:將數字集合升序排序
val numbers = listOf(5, 3, 1, 4, 2)
val sortedNumbers = numbers.sorted()
println("原始數字: $numbers")
println("升序排序: $sortedNumbers")
輸出:
原始數字: [5, 3, 1, 4, 2]
升序排序: [1, 2, 3, 4, 5]
groupBy
groupBy
方法用於將集合中的元素根據某一條件進行分組。
範例:將人員根據年齡分組
data class Person(val name: String, val age: Int)
val people = listOf(
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 25),
Person("David", 30)
)
val groupedByAge = people.groupBy { it.age }
println("人員列表: $people")
println("根據年齡分組: $groupedByAge")
輸出:
人員列表: [Person(name=Alice, age=25), Person(name=Bob, age=30), Person(name=Charlie, age=25), Person(name=David, age=30)]
根據年齡分組: {25=[Person(name=Alice, age=25), Person(name=Charlie, age=25)], 30=[Person(name=Bob, age=30), Person(name=David, age=30)]}
any 和 all
any
方法用於檢查集合中是否至少有一個元素符合條件,而 all
方法用於檢查集合中是否所有元素都符合條件。
範例:檢查是否存在年齡超過 25 歲的人員
val people = listOf(
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 22)
)
val isAnyOver25 = people.any { it.age > 25 }
val areAllOver25 = people.all { it.age > 25 }
println("人員列表: $people")
println("是否存在年齡超過 25 歲的人員: $isAnyOver25")
println("是否所有人員年齡都超過 25 歲: $areAllOver25")
輸出:
人員列表: [Person(name=Alice, age=25), Person(name=Bob, age=30), Person(name=Charlie, age=22)]
是否存在年齡超過 25 歲的人員: true
是否所有人員年齡都超過 25 歲: false
distinct
distinct
方法用於去除集合中的重複元素。
範例:去除重複的數字
val numbers = listOf(1, 2, 3, 1, 2, 4, 5, 3)
val distinctNumbers = numbers.distinct()
println("原始數字: $numbers")
println("去除重複後: $distinctNumbers")
輸出:
原始數字: [1, 2, 3, 1, 2, 4, 5, 3]
去除重複後: [1, 2, 3, 4, 5]
結語
Kotlin提供了豐富的集合操作方法,使得對集合進行各種處理變得更加簡單和便捷。根據實際需求,選擇適當的集合操作方法能夠提高程式碼的可讀性和維護性。希望這些範例能夠幫助你更好地使用Kotlin中的集合操作。
Like