返回
Kotlin函数之plus、copyOf、reverse、forEach、filter、map、reduce、fold等函数的应用
Android
2023-09-06 05:49:11
Kotlin函数提供了一种简单而强大的方式来操作集合,这些函数不仅可以用于基本的数据类型,还可以用于自定义的数据类型,因此它们在编写代码时非常有用。
- plus()函数
plus()函数用于将两个集合合并成一个新的集合,合并后的集合包含了两个集合中的所有元素,重复的元素只出现一次。语法格式为:
fun <T> Collection<T>.plus(element: T): List<T>
fun <T> Collection<T>.plus(elements: Collection<T>): List<T>
示例代码:
val numbers1 = listOf(1, 2, 3)
val numbers2 = listOf(4, 5, 6)
val mergedNumbers = numbers1.plus(numbers2)
println(mergedNumbers)
// 输出:[1, 2, 3, 4, 5, 6]
- copyOf()函数
copyOf()函数用于创建一个新集合,其中包含了原集合的所有元素,新集合的大小与原集合相同。语法格式为:
fun <T> Collection<T>.copyOf(): List<T>
fun <T> Collection<T>.copyOf(newSize: Int): List<T>
示例代码:
val numbers = listOf(1, 2, 3)
val copyOfNumbers = numbers.copyOf()
println(copyOfNumbers)
// 输出:[1, 2, 3]
- reverse()函数
reverse()函数用于将集合中的元素顺序反转,返回一个新集合,新集合包含了原集合的所有元素,但顺序是相反的。语法格式为:
fun <T> Collection<T>.reversed(): List<T>
示例代码:
val numbers = listOf(1, 2, 3)
val reversedNumbers = numbers.reversed()
println(reversedNumbers)
// 输出:[3, 2, 1]
- forEach()函数
forEach()函数用于对集合中的每个元素执行某个操作,操作完成后返回一个Unit类型的值,这意味着forEach()函数本身没有返回值。语法格式为:
fun <T> Collection<T>.forEach(action: (T) -> Unit): Unit
示例代码:
val numbers = listOf(1, 2, 3)
numbers.forEach { number ->
println(number)
}
// 输出:
// 1
// 2
// 3
- filter()函数
filter()函数用于从集合中过滤出满足某个条件的元素,返回一个新集合,新集合只包含满足条件的元素。语法格式为:
fun <T> Collection<T>.filter(predicate: (T) -> Boolean): List<T>
示例代码:
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers)
// 输出:[2, 4, 6]
- map()函数
map()函数用于将集合中的每个元素转换为另一个类型,返回一个新集合,新集合包含了转换后的元素。语法格式为:
fun <T, R> Collection<T>.map(transform: (T) -> R): List<R>
示例代码:
val numbers = listOf(1, 2, 3, 4, 5, 6)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers)
// 输出:[1, 4, 9, 16, 25, 36]
- reduce()函数
reduce()函数用于将集合中的所有元素合并成一个值,合并操作由一个二元操作符指定,二元操作符将两个元素合并成一个新值。语法格式为:
fun <T> Collection<T>.reduce(operation: (T, T) -> T): T
示例代码:
val numbers = listOf(1, 2, 3, 4, 5, 6)
val sumOfNumbers = numbers.reduce { acc, number -> acc + number }
println(sumOfNumbers)
// 输出:21
- fold()函数
fold()函数与reduce()函数类似,但它允许在集合的开头指定一个初始值,初始值将与集合中的第一个元素进行合并,然后再与集合中的其他元素进行合并,依次类推,直到将所有元素合并成一个值。语法格式为:
fun <T, R> Collection<T>.fold(initial: R, operation: (R, T) -> R): R
示例代码:
val numbers = listOf(1, 2, 3, 4, 5, 6)
val sumOfNumbers = numbers.fold(0) { acc, number -> acc + number }
println(sumOfNumbers)
// 输出:21