filterNotNullTo(destination: C): C { for (element in this) if (element != null) destination.add(element) return destination } 3、源码解析 filterNotNull是集合的扩展函数,该集合中的元素是可null的T泛型,那么这个筛选条件也就是判断是否为null,筛选条件内部确定好的。filterNotNull还是继续传入一个...
在Kotlin 中,如果你想要过滤掉 null 值和Any 类型的值,你可以使用 filterNotNull() 函数来移除所有的 null 值,然后使用 filterIsInstance<T>() 函数来保留特定类型的值。下面是一个示例代码,展示了如何在 Kotlin 中对地图(Map)进行这样的过滤: 代码语言:txt 复制 fun main() { // 创建一个包含不...
操作符:上面有介绍,即将可null属性强行修改为非null属性,若属性为null则抛出空指针异常。 安全的类型转换:kotlin提供的固定语法:用于类的转换,在转换过程中若类型不一致则返回null进而避免了类的强转异常: 安全的类型转换 通过集合高阶函数(filterNotNull)可以快速过滤出集合的非null item集合,即: filterNotNull函数 ...
Kotlin高阶函数一般是数组、集合、序列等数据结构的扩展函数,接收一个操作函数对数据进行操作,在Kotlin函数式编程中占有重要的地位。 一、filter系列 filter是“过滤器”的意思,Kotlin提供了多个相似的高阶函数。 这是扩展的filter函数,它接受一个(T)->Boolean类型的函数,返回。但是它并不自己执行操作,而是新建一个Ar...
filterNotNull(常用) 筛选不为空的值(null将被丢弃) flow{emit("1")emit(null)emit(2)}.filterNotNull().collect{println(it)} drop(常用) 作用是丢弃掉前 n 个的值,n为传入的Int类型参数 flow{emit(1)emit(2)emit(3)emit(4)emit(5)}.drop(2).collect{// 前面2个值将被丢弃println(it)} ...
filterNotNull() : 过滤掉集合中为null的元素。 take(num) : 返回集合中前num个元素组成的集合 takeWhile{...} : 循环遍历集合,从第一个元素开始遍历集合,当第一个出现不满足条件元素的时候,退出遍历。然后把满足条件所有元素组成的集合返回。 takeLast(num) : 返回集合中后num个元素组成的集合 takeLastWhile{...
filterNot--过滤掉所有满足条件的元素; filterNotNull--过滤掉所有值为null的元素; slice--过滤掉非指定下标的元素,即保留下标对应的元素过滤List中指定下标的元素(比如这里只保留下标为1,3,4的元素),当过滤list中有元素值大于目标List大小时会出现异常;关于slice操作,在实际使用时需要注意过滤List中的元素值,以免...
filter--过滤掉所有不满足条件的元素; filterNot--过滤掉所有满足条件的元素; filterNotNull--过滤掉所有值为null的元素; slice--过滤掉非指定下标的元素,即保留下标对应的元素过滤List中指定下标的元素(比如这里只保留下标为1,3,4的元素),当过滤list中有元素值大于目标List大小时会出现异常; ...
}.filterNotNull().collect { value-> print(value) } //结果 a b drop 入参count为int类型 ,作用是 丢弃掉前 n 个的值。 flow { emit(1) emit(2) emit(3) }.drop(2).collect { value -> print(value) } //结果 3 dropWhile 这个操作符有点特别,和filter 不同!它是找到第一个不满足条件的...
filter:筛选符合条件的值,返回true继续往下执行。 filterNot:与filter相反,筛选不符合条件的值,返回false继续往下执行。 filterNotNull:筛选不为空的值。 filterInstance:筛选对应类型的值,如.filterIsInstance<String>()用来过滤String类型的值 drop:drop(count: Int)参数为Int类型,意为丢弃掉前count个值。