Kotlin中常见的List使用示例教程
作者:Mr YiRan
filter 就像其本意一样,可以通过 filter 对 Kotlin list 进行过滤,本文重点给大家介绍Kotlin中常见的List使用,感兴趣的朋友一起看看吧
Kotlin是一种新兴的编程语言,它在java基础上添加了许多新的特征,使得它更加方便和强大,list是kotlin中一个非常常见的数据类型,它可以用来存储一组有序的数据,下面看下Kotlin中常见的List使用。
1.filter
filter 就像其本意一样,可以通过 filter 对 Kotlin list 进行过滤。
fun main() { val numbers = listOf(1, -2, 3, -4, 5, -6) val positives = numbers.filter { x -> x > 0 } val negatives = numbers.filter { it < 0 } // 这里我们可以使用 it println("positive values: ${positives}") // 打印 positive values: [1, 3, 5] println("negative values: ${negatives}") // 打印 positive values: [-2, -4, -6] }
2.map
map扩展函数能使我们能够变化应用于集合中的所有元素
fun main() { val numbers = listOf(1, -2, 3, -4, 5, -6) val doubled = numbers.map { x -> x * 2 } val tripled = numbers.map { it * 3 } println("doubled values: ${doubled}") // 打印 doubled values: [2, -4, 6, -8, 10, -12] println("tripled values: ${tripled}") // 打印 tripled values: [3, -6, 9, -12, 15, -18] }
3.count
count函数返回集合中的元素总数或与给定条件匹配的元素数。
fun main() { val numbers = listOf(1, -2, 3, -4, 5, -6) val totalCount = numbers.count() //集合中的元素总数 val evenCount = numbers.count { it % 2 == 0 } //与给定条件匹配的元素数 println("totalCount: ${totalCount}") // 打印 totalCount: 6 println("evenCount: ${evenCount}") // 打印 evenCount: 3 }
4.first,last
返回列表中第一个或最后一个元素的值。
fun main() { val numbers = listOf(1, -2, 3, -4, 5, -6) val first = numbers.first() val last = numbers.last() val firstEven = numbers.first { it % 2 == 0 } val lastOdd = numbers.last { it % 2 != 0 } println("first element: ${first}") // 打印 first element: 1 println("last element: ${last}") // 打印 last element: -6 println("first Even element: ${firstEven}") // first Even element: -2 println("last Odd element: ${lastOdd}") // last Odd element: 5 }
5.any,all,none
这些函数检查是否存在与给定条件匹配的集合元素,并返回布尔值。
any:集合中存有一个或多个元素符合条件时返回true,否则返回false
all:当且仅当该集合中所有元素都满足条件时,返回true;否则都返回false。
node:如果集合中没有符合匹配条件的元素,返回true,否则返回false
fun main() { val numbers = listOf(1, -2, 3, -4, 5, -6) val anyNegative = numbers.any { it < 0 } val anyGT6 = numbers.any { it > 6 } val allEven = numbers.all { it % 2 == 0 } val allLess6 = numbers.all { it < 6 } val allEven = numbers.none { it % 2 == 1 } val allLess6 = numbers.none { it > 6 } println("any negative elements: ${anyNegative}") // 打印 any negative elements: true println("any elements larger than six: ${anyGT6}") // any elements larger than six: false println("是否所有元素都是双数:${allEven}") // 是否所有元素都是双数:false println("是否所有元素都小于6: ${allLess6}") // 是否所有元素都小于6: true }
6.find,findLast
find和findLast函数返回与给定条件匹配的第一个或最后一个集合元素。如果没有这样的元素,函数将返回null
fun main(string: Array<String>) { val test = listOf("one", "two", "three", "four", "five", "six") //从开头查询,字符长度大3的元素 println(test.find { it.length > 2 }) println(test.findLast { it.length > 3 }) } //输出 one five
7.indexOf()和lastIndexOf()查找元素下标
在列表中,都可以使用indexOf() 或者lastIndexOf() 查询到元素在集合中的位置。
如果集合中没有该对象,则返回-1。
fun main(string: Array<String>) { val numbers = listOf(1, 2, 3, 4, 2, 5) println(numbers.indexOf(2)) println(numbers.lastIndexOf(2)) } //输出 1 4
还有一种扩展方法
- indexOfFirst()返回与关键字匹配的第一个元素的索引,如果没有此类元素,则返回 -1。
- indexOfLast() 返回与谓词匹配的最后一个元素的索引,如果没有此类元素,则返回 -1。
fun main(string: Array<String>) { val numbers = mutableListOf("A", "B", "B", "C", "C", "A", "C") println(numbers.indexOfFirst { it == "A" }) println(numbers.indexOfLast { it == "A" }) } //输出 0 5
8.Slice切片
该函数返回具有给定索引的集合元素列表。
fun main(string: Array<String>) { //我们得到一个字符串数组 val test = listOf("A", "B", "C", "D", "E", "F", "G") val temp = test.slice(listOf(1,4,3)) println(temp) } //输出 [B, E, D]
我们注意到,截取后的集合,也是按照我们传入的下标顺序进行获取的。
索引既可以是作为集合的形式传入,也可以是[区间]
fun main(string: Array<String>) { //我们得到一个字符串数组 val test = listOf("A", "B", "C", "D", "E", "F", "G") //截取 下标从2 到4的 集合集 val temp = test.slice(2..4) println(temp) //截取 步长为2的 指定区间的参数 val temp1 = test.slice(2..4 step 2) println(temp1) } //输出 [C, D, E] [C, E]
9.Take()和drop()获取指定长度
slice在使用的过程中可能会越界。
而take 和drop截取的时候不会产生越界的问题。
- take :从头开始获取指定长度的元素,如果原始集合长度不够,则返回整个集合对象。
- drop:从指引位置开始截取到集合尾部。
fun main(string: Array<String>) { //我们得到一个字符串数组 val test = listOf("A", "B", "C", "D", "E", "F", "G") //从头截取 val temp = test.take(5) println(temp) //从下标2的元素开始, 包括下标2的元素本身 val temp1 = test.drop(2) println(temp1) } //输出 [A, B, C, D, E] [C, D, E, F, G]
到此这篇关于Kotlin中常见的List使用的文章就介绍到这了,更多相关Kotlin List使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!