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
    }
}
上一篇下一篇

猜你喜欢

热点阅读