25

我正在观看 Paul Philips 的演讲:

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

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

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

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

4

1 回答 1

30

Java 8Stream就是他所说的视图。它们有两个重要的属性:

  1. 它们是非严格的,这意味着它们仅按需生成结果。
  2. 它们将多个操作“融合”在一起,因此您可以进行多次maporfilter调用,而原始集合仍然只会迭代一次。

Scala 的等价物是各种View集合,您可以通过调用.view现有集合来获得它们。它们确实具有这些属性——毕竟它们是定义属性——但被缺陷和错误所困扰,更不用说非常复杂的实现了。

Paul 一直在玩弄它的替代实现,但它从来都不是替代它们的优先事项。

于 2013-11-01T00:48:02.033 回答