Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是Java 8“;“视图”;?_Java_Scala_Java 8 - Fatal编程技术网

什么是Java 8“;“视图”;?

什么是Java 8“;“视图”;?,java,scala,java-8,Java,Scala,Java 8,我正在看Paul Philips的演讲: 12点48分,他在比较Scala和Java时说“在Java8中,他们的视图实际上是有效的” 什么是Java“视图”,什么是Scala的等价物 更新:感谢Daniel的回答,我发现这篇文章很有帮助:Java8的流是他所说的视图。它们有两个重要特性: 它们是非严格的,这意味着它们只能按需生成结果 它们将多个操作“融合”在一起,因此您可以执行多个map或filter调用,并且原始集合仍将仅迭代一次 Scala的等价物是各种视图集合,您可以通过调用现有集合上的

我正在看Paul Philips的演讲:

12点48分,他在比较Scala和Java时说“在Java8中,他们的视图实际上是有效的”

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


更新:感谢Daniel的回答,我发现这篇文章很有帮助:

Java8的
流是他所说的视图。它们有两个重要特性:

  • 它们是非严格的,这意味着它们只能按需生成结果
  • 它们将多个操作“融合”在一起,因此您可以执行多个
    map
    filter
    调用,并且原始集合仍将仅迭代一次
  • Scala的等价物是各种
    视图
    集合,您可以通过调用现有集合上的
    视图
    来获取这些集合。它们确实有这些属性——毕竟它们是定义属性——但存在缺陷和bug,更不用说一个非常复杂的实现了


    Paul曾时断时续地玩弄它的替代实现,但它从来都不是取代它们的优先事项。

    没有看完整的讲座,我猜想他指的是Java对该语言(或任何语言)应该如何的“看法”。java“视图”的一个例子是Oracle DOC:它概述C++和java之间的差异,并解释它们的“移除”的原理。我会认为斯卡拉的流将是新java 8流的对应部分。Scala视图的同样问题是否也适用于Scala streams?@DaoWen否,Scala
    Stream
    是可靠的。对它的主要抱怨是它没有像它可能的那样严格,因为
    head
    是严格的。然而,它是一个具有自身特征的集合,类似于
    列表
    ,而视图或Java的
    ,则是放置在另一个集合前面的机制。