以下是一些常见的用法示例:
-
plus() 函数将两个数组合并成一个数组。plus() 函数是 Kotlin 标准库中的一个扩展函数,可以用于合并两个同类型的数组。
fun main() { val array1 = arrayOf(1, 2, 3) val array2 = arrayOf(4, 5, 6) val mergedArray = array1.plus(array2) println(mergedArray.contentToString()) // 输出 [1, 2, 3, 4, 5, 6] }
-
使用 minus() 函数从数组中移除指定元素,并返回新的数组
Kotlin
val array = arrayOf(1, 2, 3, 4, 5)
val newArray = array.minus(3) // 移除元素 3
println(newArray.contentToString()) // 输出 [1, 2, 4, 5]
- 使用 slice() 函数获取数组中指定位置的元素,并返回新的数组:
Kotlin
val array = arrayOf(1, 2, 3, 4, 5)
val slicedArray = array.slice(1..3) // 获取索引为 1 到 3 的元素
println(slicedArray.contentToString()) // 输出 [2, 3, 4]
- 使用 chunked() 函数将数组分成指定大小的块,并返回一个列表:
Kotlin
val array = arrayOf(1, 2, 3, 4, 5)
val chunkedList = array.chunked(2) // 将数组分成大小为 2 的块
println(chunkedList) // 输出 [[1, 2], [3, 4], [5]]
- 使用 distinct() 函数获取数组中不同的元素,并返回新的数组
Kotlin
val array = arrayOf(1, 2, 2, 3, 3, 4, 5)
val distinctArray = array.distinct() // 获取不同的元素
println(distinctArray.contentToString()) // 输出 [1, 2, 3, 4, 5]
find():用于在数组中查找符合指定条件的元素,并返回该元素
Kotlin
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.find { it % 2 == 0 }
println(result) // 输出:2
- joinToString():用于将数组中的元素连接成字符串,并返回该字符串。
Kotlin
fun main() {
val array = arrayOf("Hello", "World")
val result = array.joinToString()
println(result) // 输出 "HelloWorld"
}
- map():用于根据指定规则将数组中的元素进行映射,并返回一个新的数组。
Kotlin
fun String.toUpperCase(): String {
return this.toUpperCase()
}
val strings = listOf("apple", "banana", "cherry")
// 使用自定义的 toUpperCase() 函数将字符串转换为大写
val upperCaseStrings = strings.map { it.toUpperCase() }
println(upperCaseStrings) // 输出 [APPLE, BANANA, CHERRY]
- sum():用于计算数组中所有元素的和。
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// 使用 sum() 函数计算所有数字的总和
val sum = numbers.sum()
println("Sum of numbers: $sum") // 输出 "Sum of numbers: 15"
}
- first():返回第一个元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// 使用 first() 函数获取第一个数字
val firstNumber = numbers.first()
println("First number: $firstNumber") // 输出 "First number: 1"
}
- last():返回最后一个元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// 使用 last() 函数获取最后一个数字
val lastNumber = numbers.last()
println("Last number: $lastNumber") // 输出 "Last number: 5"
}
- firstOrNull():返回第一个元素,如果数组为空则返回null
- lastOrNull():返回最后一个元素,如果数组为空则返回null
- getOrNull():根据下标获取元素,如果下标越界则返回null
Kotlin
val map = mapOf("apple" to 1, "banana" to 2, "orange" to 3)
// 获取键为 "apple" 的值,如果不存在则返回 null
val appleValue = map.getOrNull("apple")
println("Apple value: $appleValue") // 输出 "Apple value: 1"
// 获取键为 "grape" 的值,如果不存在则返回 null
val grapeValue = map.getOrNull("grape")
println("Grape value: $grapeValue") // 输出 "Grape value: null"
- take():获取前n个元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// 使用 take() 函数获取前三个数字
val result = numbers.take(3)
// 遍历并打印结果
for (num in result) {
println(num)
}
}
我们使用循环遍历并打印结果。输出将为:
1
2
3
- takeLast():获取后n个元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// 使用 takeLast() 函数获取最后三个数字
val result = numbers.takeLast(3)
// 遍历并打印结果
for (num in result) {
println(num)
}
}
输出将为:
7
8
9
- drop():去除前n个元素
Kotlin
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// 使用 drop() 函数删除前三个数字
val result = numbers.drop(3)
// 打印删除元素后的新序列
println(result) // 输出 [4, 5, 6, 7, 8, 9, 10]
- dropLast():去除后n个元素
Kotlin
var numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9,
// 使用 dropLast() 函数删除最后三个数字并将结果分配回原始列表
numbers = numbers.dropLast(3)
// 打印修改后的原始列表
println(numbers) // 输出 [1, 2, 3, 4, 5, 6, 7]
- filter():根据条件筛选元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// 使用 filter() 函数筛选出偶数并打印
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 输出:[2, 4, 6, 8, 10]
}
- map():对每个元素执行指定操作
Kotlin
fun main() {
// 创建一个包含字符串的列表
val strings = listOf("apple", "banana", "orange")
// 使用 map() 函数将字符串转换为它们的长度,并打印结果
val lengths = strings.map { it.length }
println(lengths) // 输出:[6, 6, 5]
}
- flatMap():对每个元素执行指定操作,并将结果合并到一个列表中
Kotlin
fun main() {
val listOfLists = listOf(listOf(1, 2, 3), listOf(4, 5, 6), listOf(7, 8, 9))
val flattenedList = listOfLists.flatMap { it }
println(flattenedList) // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
}
-
distinct():去除重复元素
Kotlinfun main() { val numbers = listOf(1, 2, 2, 3, 4, 4, 5) val uniqueNumbers = numbers.distinct() println(uniqueNumbers) // 输出了 [1, 2, 3, 4, 5] }
distinctBy():根据指定条件去除重复元素
Kotlin
fun main() {
val items = listOf("apple", "banana", "cherry", "date", "elderberry")
val distinctItems = items.distinctBy { it.length }
println(distinctItems) // 输出了 [apple, banana, cherry, date]
}
- contains():判断数组是否包含指定元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val containsThree = numbers.contains(3)
println(containsThree) // 输出:true
}
- indexOf():获取指定元素的下标,如果不存在则返回-1
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val index = numbers.indexOf(3)
println("The index of 3 is: $index") // 输出:The index of 3 is: 2
}
我们打印出结果,显示数字 3 在列表中的位置。请注意,indexOf() 函数返回的是该元素在列表中的位置,索引从 0 开始。
-
lastIndexOf():获取指定元素的最后一个下标,如果不存在则返回-1
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5, 3) val lastIndex = numbers.lastIndexOf(3) println("The last index of 3 is: $lastIndex") // 输出:The last index of 3 is: 5 }
-
partition():根据条件分成两个数组
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val (evenNumbers, oddNumbers) = numbers.partition { it % 2 == 0 }
println("Even numbers: $evenNumbers") // 输出:[2, 4]
println("Odd numbers: $oddNumbers") // 输出:[1, 3, 5]
}
- groupBy():根据条件将元素分组到不同的数组中
Kotlin
fun main() {
val items = listOf("apple", "banana", "cherry", "date", "elderberry")
val itemGroups = items.groupBy { it.length }
for ((key, value) in itemGroups) {
println("Items with length $key: $value")
}
}
答案输出:
Items with length 5: [apple]
Items with length 6: [banana, cherry]
Items with length 4: [date]
Items with length 10: [elderberry]
-
sum():计算元素的总和
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) val sum = numbers.sum() println("The sum of the numbers is: $sum") // 输出:The sum of the numbers is: 15 }
-
average():计算元素的平均值
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) val average = numbers.average() println("The average of the numbers is: $average") // 输出:The average of the numbers is: 3.0 }
-
max():获取最大元素
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val maxNumber = numbers.max()
println("The maximum number is: $maxNumber") // 输出:The maximum number is: 5
}
- min():获取最小元素
- reduce():对元素进行累加
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.reduce { acc, num -> acc + num }
println("The sum of the numbers is: $result") // 输出:The sum of the numbers is: 15
}
- fold():对元素进行累加,并可以指定初始值
Kotlin
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.fold(0) { acc, num -> acc + num }
println("The sum of the numbers is: $result") // 输出:The sum of the numbers is: 15
}
-
forEach():遍历元素并执行指定操作
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) numbers.forEach { println(it) } } 将会输出以下内容: 1 2 3 4 5
-
forEachIndexed():遍历元素并获取索引,执行指定操作
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) numbers.forEachIndexed { index, num -> println("Index $index: $num") } } 将会输出以下内容: Index 0: 1 Index 1: 2 Index 2: 3 Index 3: 4 Index 4: 5
-
zip():将两个数组合并成一个新数组,每个元素都是一对。
Kotlinfun main() { val list1 = listOf("a", "b", "c") val list2 = listOf(1, 2, 3) val zippedList = list1.zip(list2) { a, b -> Pair(a, b) } zippedList.forEach { println(it) } } 将会输出以下内容: 复制代码 Pair(a, 1) Pair(b, 2) Pair(c, 3)
-
all():判断所有元素是否都满足指定条件
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) val allPositive = numbers.all { it > 0 } println("All numbers are positive: $allPositive") // 输出:All numbers are positive: true }
-
any():判断是否有任何元素满足指定条件
Kotlinfun main() { val numbers = listOf(1, 2, -3, 4, 5) val hasNegative = numbers.any { it < 0 } println("Numbers have negative value: $hasNegative") // 输出:Numbers have negative value: true }
-
none():判断是否所有元素都不满足指定条件
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) val hasNegative = numbers.none { it < 0 } println("Numbers have no negative value: $hasNegative") // 输出:Numbers have no negative value: true }
-
associate():将每个元素转化为Pair对象,并返回一个Map
Kotlinfun main() { val numbers = listOf(1, 2, 3, 4, 5) val associatedMap = numbers.associate { it to it } println("Associated map: $associatedMap") } 输出 Associated map: {1=1, 2=2, 3=3, 4=4, 5=5}
-
associateBy():根据指定条件生成key,并将元素转化为value,返回一个Map
Kotlinfun main() { val people = listOf("David", "Bob", "Charlie", "Alice") val associatedMap = people.associateBy { it.length } println("Associated map: $associatedMap") } Associated map: {5=Alice, 3=Bob, 7=Charlie}
-
associateWith():将每个元素转化为key,并根据指定条件生成value,返回一个Map
Kotlin
val people = listOf("Alice", "Bob", "Charlie", "David")
val associatedMap = people.associateWith { it.length }
println("Associated map: $associatedMap")
Associated map: {Alice=5, Bob=3, Charlie=7, David=5}
- flatMapTo():将每个元素执行指定操作,并将结果合并到一个指定类型的列表中
Kotlin
val numbers = listOf(1, 2, 3, 4, 5)
val flattened = numbers.flatMapTo(HashSet<Int>()) { setOf(it * 2) }
println("Flattened list: $flattened")
- mapTo():将每个元素执行指定操作,并将结果合并到一个指定类型的列表中
Kotlin
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.mapTo(ArrayList<Int>()) { it * it }
println("Squared numbers: $squaredNumbers")
输出结果:Squared numbers: [1, 4, 9, 16, 25]
-
reduceIndexed():对元素进行累加,并可以访问索引
Kotlinval numbers = listOf(1, 2, 3, 4, 5) val result = numbers.reduceIndexed { index, acc, value -> if (index % 2 == 0) { acc + value } else { acc - value } } println("Result: $result") 输出结果将会是: Result: 3
-
foldIndexed():对元素进行累加,并可以访问索引,并可以指定初始值
Kotlinval numbers = listOf(1, 2, 3, 4, 5) val result = numbers.foldIndexed(0) { index, acc, value -> if (index % 2 == 0) { acc + value } else { acc - value } } println("Result: $result") 输出结果将会是:Result: 3