- count
- find
- groupBy
count
count用来统计符合条件的数据的个数
首先来看它的源码:
public inline fun <T> Iterable<T>.count(predicate: (T) -> Boolean): Int {
if (this is Collection && isEmpty()) return 0
var count = 0
for (element in this) if (predicate(element)) checkCountOverflow(++count)
return count
}
count函数传入一个(T) -> Boolean类型的函数,返回值为Int类型也就是count的值。如果集合为空则直接返回0,如果不为空则遍历该集合,将符合条件的数据筛选出来,每符合一条,count+1最后返回count值。
应用:
dogdatabase.count{
it.height==44}
//得到结果为2
可以说kotlin中的高阶函数对于新手还是非常友好的,省去了很多代码量去构建这些常用的功能。让我们把更多的精力放到攻坚的地方上去。
find
查找符合条件并返回第一个符合该条件的数据。
源码如下:
public inline fun <T> Iterable<T>.firstOrNull(predicate: (T) -> Boolean): T? {
for