本文最后更新于 2021-08-05 11:42:59
Stream
串行流
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| object Demo1 { def main(args: Array[String]): Unit = { val l1 = List(1, 2, 3, 4, 9, 7, 5, 8) val stream = l1.toStream println(stream.head) println(stream.tail.head) println(stream)
println(stream.force) println(getSteam.take(10).force)
println(fibSeq(10)) }
def getSteam:Stream[Int]={ 1 #:: getSteam }
def fibSeq(n:Int):List[Int]={ def loop(a:Int,b:Int) :Stream[Int]={ a #::loop(a,a+b) } loop(1,1).take(n).force.toList } def fibSeq2(n:Int):List[Int]={ def loop() :Stream[Int]={ 1 #:: loop.scanLeft(1)(_+_) } loop.take(n).force.toList } }
|
并行流
1 2 3 4 5 6 7
| object Demo2 { def main(args: Array[String]): Unit = { val l1 = List(1, 2, 3, 4, 9, 7, 5, 8) l1.par.foreach(x=> println(Thread.currentThread().getName)) } }
|
19Stream
https://jiajun.xyz/2020/11/18/scala/19Stream/