【问题标题】:Scala collections flowchartScala 集合流程图
【发布时间】:2014-08-19 07:54:07
【问题描述】:

有一个很好的流程图(取自 here)用于在 C++ 中选择特定容器:

Scala 集合有类似的东西吗?我仍然对这些选项有些不知所措。

【问题讨论】:

    标签: scala collections


    【解决方案1】:

    我不知道 Scala 有这样的流程图,但我想有一个会很有用。 我为你做了一张——大图here

    请注意,这会增加一些复杂性,因为 Scala 有更多的集合,并且有 mutableimmutable 包。在可能的情况下,我在矩形中添加了两种替代方法。

    我尽量遵循C++ STL流程图,但我觉得左下部分有点太复杂了,所以我稍微改变了那里的流程。

    编辑:修正了一些错别字。

    编辑:正如 Travis 建议的那样,请注意,在大多数情况下,您只需在 MapSetListArrayBufferVector 之间进行选择。

    • 如果您需要键值查找,请使用Map
    • 如果您需要检查元素是否存在,请使用Set
    • 如果您需要存储元素并遍历它们,请使用ListArrayBuffer
    • 如果您不需要持久性集合,但随机访问非常重要,请使用ArrayBuffer
    • 如果您需要相对快速的随机访问和持久序列,请使用Vector

    如果这没有帮助,并且您有更奇特的用例,请使用此图表。

    【讨论】:

    • 这是一个相当不错的流程图。你是用什么做的?
    • CorelDRAW 应用程序。用于矢量图形非常好。
    • 绝大多数时间在惯用的 Scala 中,您将使用 MapSetListVector(或最后使用 SeqIndexedSeq二,根据一些人的说法)。这是一张方便的图表,但它可能会使情况看起来比实际情况更加混乱。
    • 这很好。我想我会编辑我的答案来指出这一点。
    • 不错的图表,但 immutable.HashMap 位于问题“顺序很重要”的两侧。这有点令人困惑。
    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 2018-08-19
    • 2010-12-15
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多