Kotlin高级函数

集合

集合类型

Kotlin 标准库提供了基本集合类型的实现: set、list 以及 map。 一对接口代表每种集合类型:

一个 只读 接口,提供访问集合元素的操作。
一个 可变 接口,通过写操作扩展相应的只读接口:添加、删除和更新其元素。

注:

  1. 只读集合类型是型变的。 这意味着,如果类 Rectangle 继承自 Shape,则可以在需要 List 的任何地方使用 List 。 换句话说,集合类型与元素类型具有相同的子类型关系。 map 在值(value)类型上是型变的,但在键(key)类型上不是。

  2. 反之,可变集合不是型变的;否则将导致运行时故障。 如果 MutableList 是 MutableList 的子类型,你可以在其中插入其他 Shape 的继承者(例如,Circle),从而违反了它的 Rectangle 类型参数。

Collection

Collection 继承自 Iterable 接口,它定义了迭代元素的操作。可以使用 Collection 作为适用于不同集合类型的函数的参数 ,继承者: List 与 Set。 MutableCollection 是一个具有写操作的 Collection 接口,例如 add 以及 remove。

Kotlin高级函数

maxBy寻找函数中最大值

 println(非诚勿扰数据库.maxBy { it.age })

minBy寻找函数中最小值

println(非诚勿扰数据库.minBy { it.age })

filter区间值筛选

println(非诚勿扰数据库.filter { (it.age > 18) and (it.age < 25) and (it.height > 140) })

map方法,打印想要的数据

println(非诚勿扰数据库.map {"${it.name}:${it.age}" })

any查询需要等于的查询,返回Boolean

println(非诚勿扰数据库.any { it.age==25 })

count统计满足条件的个数

println(非诚勿扰数据库.count { it.age<25 })

find查找满足条件的第一个值并返回

 println(非诚勿扰数据库.find { it.age<25 })

groupBy按照一定的要求查询的分组

println(非诚勿扰数据库.groupBy { it.age<25 })
//打印ag=25的所有数据
println(非诚勿扰数据库.groupBy { it.age }.get(25)?.forEach { println(it) })

DSL(领域特定语言)

包含:扩展函数中缀表达式

infix 设置方法为中缀表达式

infix fun List<Gril>.查找年龄小于(age: Int){
filter {
    it.age<age
}.forEach(::println)
}
//一般的调用
非诚勿扰数据库.查找年龄小于(25)
//kotlin的DSL调用,去除了点,自然语言的形式展现
非诚勿扰数据库 查找年龄小于 25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值