kotlin高阶函数简介
java 1.8有stream(),让处理列表数据很方便。那么kotlin有没有类似的函数呢?一查还真有,用法跟stream()差不多。
函数介绍
maxByOrNull --- 根据条件,筛选出最大值,返回itemBean
count --- 根据条件,统计个数,返回int
filter --- 根据条件,筛选列表,返回List<itemBean>
map --- 根据条件,映射出一个新的列表,返回List<T>
any --- 根据条件,是否有符合条件的,返回boolean
find --- 根据条件,查找出第一个符合条件的itemBean,返回itemBean
groupBy --- 分组,类型sql
测试的List
maxByOrNull、maxOfOrNull
maxByOrNull 筛选符合条件的最大值,返回itemBean
maxOfOrNull筛选符合条件的最大值,返回 比较的字段的类型(int/String/double等)
count
count 统计符合条件的个数,返回 int
filter
生成的列表数据是浅拷贝的,对象指向数据源!!!
filter筛选符合条件的item,成新的list
map
map类似stream()的map,映射出符合条件的List,返回值看给的条件的类型
any、find
any返回是否有符合条件的
find返回符合条件的第一个itembean
groupBy
groupBy 对条件进行分组,返回分组后的List
打印的log
groupBy:{
true=[DataBean{count1=1, count2=1}, DataBean{count1=2, count2=2}, DataBean{count1=3, count2=4}],
false=[DataBean{count1=4, count2=8}, DataBean{count1=5, count2=16}, DataBean{count1=6, count2=32}]
}