Ruby中的Set是否始终保留插入顺序?

pow*_*boy 10 ruby set

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

Nev*_*vir 10

在Ruby 1.9中:是的.在Ruby 1.8中:可能不是.

Set Hash内部使用 ; 由于哈希是在1.9中插入排序的,所以你很高兴!

由于mu太短指出,这是一个实现细节,可能在未来发生变化(虽然不太可能).值得庆幸的是,目前的实现Set是纯粹的红宝石,OrderedSet如果你愿意,可以在未来适应

  • 有点.[文档](http://ruby-doc.org/stdlib-1.9.3/libdoc/set/rdoc/Set.html)说"Set实现了无重复值的无序值集合".内部使用Hash是一个可以随时更改的实现细节,并且接口规范无法保证"有序性".OTOH,它还说"Set使用哈希作为存储." 所以... (15认同)