11.8 流(Stream)

stream是一个集合。

这个集合,可以用于存放无穷多个元素,但是这无穷个元素并不会一次性生产出来,而是需要用到多大的区间,就会动态的生产,

末尾元素遵循lazy规则(即:要使用结果才进行计算的) 。

package com.atguigu.day11.operate

object StreamDemo1 {
  def main(args: Array[String]): Unit = {
    val stream1: Stream[BigInt] = numFrom(10)
    println(stream1)
    println(stream1.tail)
    println(stream1.tail.tail)

    // 获取流中 5 个数据, 并强制求值
    println(stream1.take(5).force)
  }

  def numFrom(n: BigInt): Stream[BigInt]={


    n #:: numFrom(n + 1)
  }
}

说明:

  • Stream 集合存放的数据类型是BigInt
  • numsForm 是自定义的一个函数,函数名是程序员指定的。
  • 创建的集合的第一个元素是 n , 后续元素生成的规则是 n + 1
  • 后续元素生成的规则是可以程序员指定的 ,比如 numsForm( n * 4)...
  • 是一种懒加载
Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-12-05 22:03:19

results matching ""

    No results matching ""