scala之-Stream流集合数据结构
package com.shufang.funs
/**
* 1)Stream集合存放的数据类型是BigInt,理论可以自动扩容得存放无限个元素,但是是lazy的
* 2)numsForm 是自定义的一个函数,函数名是程序员指定的。
* 3)创建的集合的第一个元素是 n , 后续元素生成的规则是 n + 1
* 4)后续元素生成的规则是可以程序员指定的 ,比如 numsForm( n * 4)...
*/
object StreamDemo {
def main(args: Array[String]): Unit = {
// 使用 #:: 创建一个Stream
// 方法名(参数: 参数类型):返回值类型 = 参数 #::: 方法名(参数+1)
def getStream(n: BigInt): Stream[BigInt] = n #:: getStream(n + 1)
//调用方法创建一个Stream
val stream1 = getStream(1)
println(stream1)
//每调用一次tail方法,都可以按照规则在stream中生成一个新的元素,这里调用三次(2,?)(3,?)(4,?)
val tail: Stream[BigInt] = stream1.tail.tail.tail
println(tail.head) //4
println(tail) // Stream(4,?)
}
}