Ruby中的Set是否总是保持插入顺序?

12

即,Ruby的Set是否等同于Java的LinkedHashSet?

1个回答

12

在Ruby 1.9中:可以。在Ruby 1.8中:可能不行

Set 在内部使用了一个Hash;由于在1.9中哈希是按插入顺序排序的,所以你可以放心使用!

正如mu is too short指出的,这是一种实现细节,未来可能会发生变化(尽管不太可能)。值得庆幸的是,Set的当前实现是纯ruby实现,如果需要的话,将来可以改为OrderedSet


16
有点是这样的。 文档说“Set实现了一个无序且没有重复值的集合”。内部使用哈希表是一种可能随时更改的实现细节,而“有序性”不受接口规范的保证。另一方面,它也说“Set使用哈希表作为存储”。 - mu is too short

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接