Kotlin 零基础学习 高阶函数
2019-02-01 本文已影响11人
__素颜__
一.高阶函数
所谓高阶函数指的就是参数或返回值是函数的函数
优点
1.把筛选的行为(函数)作为参数传递到过滤器里面。
2.简洁代码,提高效率。
二.集合中的高阶函数
Kotlin分装了集合中最常用高阶函数,方便了程序的调用,和代码的冗余。
1.minBy:获取条件最小的
2.maxBy:获取条件最大的
3.filter:按照某个条件过滤
4.map:把某个属性映射成一个集合
5.any:集合中有没有符合条件的
6.count:集合中符合条件的个数
7.find:查找符合条件的,并返回第一个
8.groupBy:按照某个类型去分组
例如:把所有妹子的名字列出来放入新的集合中,然后按照不同的条件进行查找
class Girl(name: String, address: String, age: Int, high: Int) {
var name = name
var address = address
var age = age
var high = high
}
fun main(args: Array<String>) {
var girlList = ArrayList<Girl>();
girlList.add(Girl("妹儿", "河南", 23, 168))
girlList.add(Girl("灵儿", "黑龙江", 25, 170))
girlList.add(Girl("小九", "吉林", 27, 180))
girlList.add(Girl("黑妹", "山东", 23, 190))
girlList.add(Girl("娟儿", "陕西", 23, 155))
girlList.add(Girl("小晴", "河南", 18, 155))
girlList.add(Girl("小花", "河南", 20, 179))
//1.获取年龄最大的女孩
girlList.maxby {
it.age
}
//2.获取身高最矮的女孩
girlList.minby {
it.high
}
//3.过滤年龄最大的
girlList.fiter {
(it.age > 18 and it.high > 168)
}
//4.获取所有女孩的名字,并且放入一个集合中
girlList.map {
"${it.name}:${it.age}"
}
//5.有没有年龄大于18的
girlList.any {
it.age > 18
}
//6.统计年龄大于18 的女孩有多少个
girlList.count {
it.age > 18
}
//7.查找符合年龄大于18的妹子,并返回第一个
girlList.find {
it.age > 18
}
//8.按照某个类型去分组,按照地区分组
girlList.groupBy {
it.address
}
}