首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我们在set中传递4个以上的值时,ruby如何排列set中的值

当我们在set中传递4个以上的值时,ruby如何排列set中的值
EN

Stack Overflow用户
提问于 2012-02-09 17:03:05
回答 2查看 70关注 0票数 3
代码语言:javascript
运行
复制
 Set.new

=> #<Set: {}>

irb(main):003:0> Set[1,2,3,4,5,6]

=> #<Set: {5, 6, 1, 2, 3, 4}>

irb(main):004:0> Set[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

=> #<Set: {5, 11, 6, 12, 1, 7, 13, 2, 8, 14, 3, 9, 15, 4, 10}>

irb(main):005:0> Set[1,2,3,4,5,6,7,8,9,10]

=> #<Set: {5, 6, 1, 7, 2, 8, 3, 9, 4, 10}>

irb(main):006:0> Set[1,2,3,4,5]

=> #<Set: {5, 1, 2, 3, 4}>

irb(main):007:0> Set[1,2,3,4]

=> #<Set: {1, 2, 3, 4}>

irb(main):008:0> Set[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

=> #<Set: {16, 5, 11, 17, 6, 12, 1, 18, 7, 13, 2, 19, 8, 14, 3, 20, 9, 15, 4, 10}>

irb(main):009:0> Set[1,2,4,5,3,7]

=> #<Set: {5, 1, 7, 2, 3, 4}>

我想知道Ruby使用哪种算法来输入集合中的值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 18:31:58

你说过“在语言中,没有顺序就不会产生任何东西”,但这不是真的。哈希的生成是没有顺序的。

然而,在Ruby 1.9中,在散列之上添加了额外的基础设施,为它们提供了在迭代时使用的插入顺序(这意味着即使它们是无序存储的,它们本质上也维护着一个链表,它们可以在遍历时使用)。因为集合是用散列实现的,所以它们在1.8中是无序的,在1.9中是有序的,但你不应该依赖这种顺序(否则它就不是一个集合,在Ruby语中它是一个列表--数组)。

Here是实现散列的一个简单示例。

This文章讨论了如何添加排序。

票数 0
EN

Stack Overflow用户

发布于 2012-02-09 17:19:35

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/set/rdoc/SortedSet.html SortedSet实现了一个Set,该Set保证其元素是按排序顺序生成的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9207906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档