美文网首页
Kotlin 零基础学习 高阶函数

Kotlin 零基础学习 高阶函数

作者: __素颜__ | 来源:发表于2019-02-01 16:43 被阅读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
        }
    }
    

    相关文章

      网友评论

          本文标题:Kotlin 零基础学习 高阶函数

          本文链接:https://www.haomeiwen.com/subject/fotdsqtx.html