什么是 Java 8“视图”?

2022-09-01 19:10:57

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

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

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

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

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


答案 1

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

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

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

Paul 已经断断续续地为它设计了替代实现,但取代它们从来都不是优先事项。


答案 2

推荐