Stream的懒执行行为,你可以对其他集合应用view方法来得到类似的效果,该方法产出一个其方法总是被懒执行的集合。但是view不会缓存数据,每次都要重新计算
Stream 与 View 的区别是,View 不会缓存数据,每次都要重新计算
例如:我们找到10万以内,所有数字倒序排列还是它本身的数字。回文数字
val view1 = (1L to 100000000L).view.map(x => x * x).filter(y => y.toString == y.toString.reverse)
println(view1.mkString(" "))
//打印第二遍是,不会直接打印,会再运行一遍计算,再打印,懒视图
println(view1.mkString(" "))
//访问第十个
println(view1(10))
//view和stream 都是懒执行,不同点是Stream懒值后的数据是保存下来的,view不保存