【问题标题】:Scala equivalent of java.util.Collection?Scala 相当于 java.util.Collection?
【发布时间】:2016-08-29 13:01:42
【问题描述】:

java.util.Collection 的等价物是什么?我首先认为Seq 是要走的路,但实际上它是一组有序的元素。我的意思是我们有很多元素。

【问题讨论】:

  • TraversableIterable 是 Scala 集合所基于的最通用的 traits
  • Seq 接口不是“有序的元素集”。它是只能按顺序访问的元素集合。既不禁止也不要求订购。
  • Seq 保留排序。基本上遍历Seq(1,2,3)总是会导致按顺序遍历1 -> 2 -> 3
  • 另外...Collection 不禁止保留订单。所以Seq 有资格作为Collection 的替代品,即使它保留了顺序。但从您的角度来看,Traversable 将最接近 Collection

标签: scala collections


【解决方案1】:

集合层次结构

Traversable 位于iterable 上方

【讨论】:

    【解决方案2】:

    上图很好看,但对回答问题一点帮助都没有。 (它可能有助于作为其他目的的一般参考,但不用于此目的。)它甚至缺少一些非常重要的接口。所以,这里有一些很好的旧文本来尝试消除混淆:

    java.util.Collection 等效的Scala 是scala.collection.Iterable,尽管名称不匹配。

    你看,scala.collection.Iterable 提供了 Java Collection 的基本功能:它有一个 iterator 和一个 size

    显然,Java 调用Iterable Scala 调用它Traversable,然后Java 调用Collection Scala 调用它Iterable

    【讨论】:

    • 从界面功能的角度来看,这可能是正确的,但是asJava(iterable 不会产生集合。
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 2017-03-13
    • 2012-05-26
    • 1970-01-01
    • 2011-12-12
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多