赞
踩
.flatMap {
(0 until it).asSequence()
}
.joinToString().let(::println)
val newList = list.flatMap {
ArrayList<String>(it)
}
* **sequence**的概念
sequence类似java8里面的stream流,或者RxJava里面的流概念
val list = listOf(1, 2, 3, 4)
list.asSequence() .filter { println("filter: $it") it % 2 == 0 }.map { println("map: $it") it * 2 + 1 }.forEach { println("forEach: $it") }
上面代码`list`调用`asSequence`后每个元素会依次调用`filter`和`map`, 不加`asSequence`每个元素会先调用`filter`再调用`map`。 加`asSequence`最后不加`forEach`的话,不会有输出,不加`asSequence`的话,去掉`forEach`也会有输出。即加上`asSequence`变成了流一样。 `asSequence`被称为懒序列,使用`asSequence`性能会优化一些,因为每个元素只需要走一遍每个操作,而不是每个操作中将每个元素走一遍。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217231349576.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5YWJjMTIzNDU2,size_16,color_FFFFFF,t_70#pic_center) **sum**
val list = listOf(1, 2, 3, 4)
val s = list.sum()
println(“list.sum() $s”)//10
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217231728934.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5YWJjMTIzNDU2,size_16,color_FFFFFF,t_70#pic_center)
val list = listOf(1, 2, 3, 4)
//acc是上次的计算结果,初始值为StringBuffer(),返回值跟初始值类型一样
val foldStrBuf = list.fold(StringBuffer()){
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。