Kotlin的lambda的详解与使用

1、表达式1

数组的groupBy 分组与when关键字一起使用

//分组
fun groupBy(){
    var list1 = listOf("张三", "张思", "寅务")
    val map1  = list1.groupBy {
        var first = it.substring(0, 1)
        when (first) {
            "张" -> "张"
            "寅" -> "寅"
            else -> "其他"
        }
    }
    println(map1)
}

2、表达式2

数组的sortedBy、sortedByDescending排序

//排序
fun sort(){
    var list1 = listOf(Personx(29, "liangjl"), Personx(22, "梁继龙"), Personx(30, "寅务"))
    //sortedBy升序排序
    var list2 = list1.sortedBy { it.age }

    println(list2)

    //sortedByDescending倒序排序
    var list3 = list1.sortedByDescending { it.age }

    println(list3)
    
}

3、表达式3

数组的minBy最小值和maxBy最大值方法

//求最小或最大值
fun minOrMax(){
    var list1 = listOf(Personx(29, "liangjl"), Personx(22, "梁继龙"), Personx(30, "寅务"))
    list1.maxBy { it.age } //最大值
    list1.minBy { it.age } //最小值
}

4、表达式4

数组的去重复方法distinctBy

//去重复
fun quchong(){
    var list1 = listOf("张三", "张思", "寅务","寅务" ,"茵曼")
    
    //val set   =   list1.toSet()
    
    //println(set)
    
    println(list1.distinctBy { it })
    
    //去掉同性的人名
    println(list1.distinctBy { it.substring(0,1) })
    
}

5、表达式5

数组的集合拆分方法partition

//集合拆分
fun listCf(){
    var list1 = listOf("张三", "张思", "寅务","寅务" ,"茵曼")
    var p = list1.partition { it.startsWith("张") }
    println(p.first)
    println(p.second)
}

6、表达式6

求数组集合用户的最大年龄sumBy
data关键字 生成get/set方法,创建一个实体类

fun listSum(){
    var list1 = listOf(Personx(29, "liangjl"), Personx(22, "梁继龙"), Personx(30, "寅务"))
    
    //所有人的年龄相加 
    var sumAge = list1.sumBy { it.age }
    println(sumAge)
} 
//data 生成get/set方法,创建一个实体类
data class Personx(var age : Int ,var userName :String )

7、表达式7

可以多个值在一个大括号进行输出

//可以多个值在一个大括号进行输出
fun moreValOut(){
    val (age,userName) = Personx(29, "liangjl")
    println(age)
    println(userName)
}
//创建一个实体类
data class Personx(var age : Int ,var userName :String )

源代码例子

你可能感兴趣的:(Kotlin的lambda的详解与使用)