什么是Java 8"视图"?

blu*_*sky 24 java scala java-8

我正在看保罗飞利浦的演讲:

http://www.youtube.com/watch?v=TS1lpKBMkgg

在12:48时,他在比较Scala和Java时说"在Java 8中他们的观点确实有效"

什么是Java"视图"以及Scala的等价物是什么?

更新:感谢Daniel的回答,我发现这篇文章很有帮助:http://www.scala-lang.org/docu/files/collections-api/collections_42.html

Dan*_*ral 29

Java 8 Stream是他的意见所在.它们有两个重要的属性:

  1. 它们是非严格的,这意味着它们只能按需生成结果.
  2. 它们将多个操作"融合"在一起,因此您可以执行多个操作mapfilter调用,原始集合仍将只迭代一次.

Scala等同于各种View集合,您可以通过调用.view现有集合来获取它们.他们确实拥有这些属性 - 毕竟它们是定义属性 - 但却充满了缺陷和缺陷,更不用说非常复杂的实现了.

保罗已经开始玩弄替代实施,但从来没有优先取代它们.

  • @DaoWen不,Scala`Stream`很稳固.主要的抱怨是它并不像它可能的那样严格,因为`head`是严格的.然而,它是一个具有自己特征的集合,类似于"List",而视图或Java的"Stream"则是放置在另一个集合前面的机制. (3认同)