高阶函数:filter
是一个过滤器,能够通过各种条件过滤出符合该条件的数据。
val numbers1 = listOf<Int>(213, 4, 534, 646, 757, 8, 97, 9);
var result = numbers1.filter {
it < 10
}
结果:4,8,9
高阶函数:any
val numbers1 = listOf<String>("123", "田园犬", "345", "收到");
println(numbers1.any{it.kind=="田园犬"})
结果:true
高阶函数:maxByOrNull
求最大值
val numbers2 = listOf<Int>(213, 4, 534, 646, 757, 8, 97, 9);
numbers2.maxByOrNull { it }
结果:757 (最大值)
高阶函数:minByOrNull
求最小值
val numbers2 = listOf<Int>(213, 4, 534, 646, 757, 8, 97, 9);
numbers2.minByOrNull { it }
结果:4(最小值)
高阶函数:map
将一个集合遍历,之后按照你自己的规则生成新的集合。val arr = intArrayOf(1, 2, 4, 6)
val newArr = arr.map { (it * 2).toString() }
结果:2,4,8,12
val newArr1 = arr.map {
if (it == 2) {
it * 2
}
}
结果:1,4,4,6
高阶函数:flatMap
遍历嵌套的集合,生成新的集合.
val list = mutableListOf(
arrayOf("华晨宇", "张碧晨", "邓紫棋"),
arrayOf("何老师", "汪涵"),
arrayOf("谢娜", "张杰", "汪诗诗"),
)
val flatList = list.flatMap {
it.map { name -> "大明星:$name" }
}
flatList.forEach(::println)
高阶函数:reduce
将所提供的操作应用于集合元素并返回积累的结果
从第一个元素开始累加值,并将操作从左到右应用到当前累加器值和每个元素。
val list = listOf(1, 2, 5, 2)
list.reduce { acc, i ->
println("acc:$acc,i:$i")
acc + i
}
高阶函数:fold
这个函数和reduce类似,不过它可以设置一个初始值
val list = listOf(1, 2, 5, 2)
list.fold(2) { acc, i -> //初始值为2
println("acc:$acc,i:$i")
acc + i
}
高阶函数:joinToString
val result = (0..6).joinToString(",")
println("result:$result")
结果: "0,1,2,3,4,5,6"
val number = listOf("one", "two", "three", "four")
number.joinToString(separator = " | ", prefix = "start:", postfix = ":end")
结果:start:one|two|three|four|:end
高阶函数:takeWhile
遇到第一个不符合条件的就结束,留下前边的作为一个新的集合返回.
val list = listOf(
UserEntity(100, "华晨宇", 30),
UserEntity(101, "张碧晨", 31),
UserEntity(103, "邓紫棋", 29),
UserEntity(103, "李宇春", 32),
)
val result = list.takeWhile {
it.age >= 30
}
println("result:$result")
result:[userName:华晨宇,userId:100,age:30, userName:张碧晨,userId:101,age:31]
高阶函数:count
计算列表中符合条件的元素的数量
val len1 = "Meng qingLong".count()
val len2 = "Meng qingLong".count(){ //计算字符串中符合'n'的数量
it == 'n'
}
高阶函数:find
查找符合条件并返回第一个符合该条件的数据。他跟filter的区别就是。filter返回的是结果集合。而find是找到第一个就返回。
val listOf = listOf<String>("a", "b", "c")
val find: String? = listOf.find { it == "a" }
//找到"a" 就返回了当前的String类型的"a"
高阶函数:groupBy
分组。即根据条件把集合拆分为为一个Map<K,List>类型的集合
fun main(string: Array<String>) {
val s = listOf("china","beijing","wuhan","guangzhou","Changsha","wuhu")
val n1 = s.groupBy {
//按照首字母大写进行分组操作
it.first().uppercase()
//返回成Map的Key。 满足条件的元素相应的进入Map集合中的Value,List列表中
}
println(n1)
}
//输出
{C=[china, Changsha], B=[beijing], W=[wuhan, wuhu], G=[guangzhou]}
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/21928,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/21928,转载请注明出处。
评论0