【问题标题】:Does Set in Ruby always preserve insertion order?Ruby 中的 Set 是否始终保留插入顺序?
【发布时间】:2012-04-28 06:36:51
【问题描述】:

也就是说,Ruby 的 Set 是否等同于 Java 的 LinkedHashSet?

【问题讨论】:

    标签: ruby set


    【解决方案1】:

    在 Ruby 1.9 中:。在 Ruby 1.8 中:可能不会

    Setuses a Hash internally;并且由于哈希在 1.9 中是按插入排序的,所以您可以开始了!

    正如mu is too short 指出的那样,这是一个实现细节,将来可能会发生变化(尽管不太可能)。谢天谢地,Set 的当前实现是纯 ruby​​,如果你愿意,将来可以改编成OrderedSet

    【讨论】:

    • 有点。 The documentation 说“Set 实现了一组无重复的无序值”。在内部使用 Hash 是一个可能随时更改的实现细节,并且接口规范不保证“有序性”。 OTOH,它还说“Set 使用 Hash 作为存储”。所以...
    猜你喜欢
    • 2010-10-14
    • 2018-03-12
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多