ruby-如何从Set创建SortedSet?

时间:2019-05-23 11:45:55

标签: ruby set

如果我有一个数组,我可以使用它来创建一个集合(唯一值)

require 'set'
s = [11,12,3,2,3,4,3,5,89,1,2,3,4]
uniq_s = s.to_set # gives [11,12,3,2,4,5,89,1]

如果我希望对结果进行排序,我可以     sorted_s = s.sort

我还如何使用SortedSet来做到这一点? 我尝试使用array.to_sorted_set,但不存在

2 个答案:

答案 0 :(得分:5)

将现有集合传递到SortedSet.new

示例:

irb(main):046:0> s = [11,12,3,2,3,4,3,5,89,1,2,3,4].to_set
=> #<Set: {11, 12, 3, 2, 4, 5, 89, 1}>
irb(main):047:0> sorted_s = SortedSet.new(s)
=> #<SortedSet: {1, 2, 3, 4, 5, 11, 12, 89}>
irb(main):048:0> 

答案 1 :(得分:4)

您还可以按照#to_set文档中的说明传递set类。

require 'set'
s = [11,12,3,2,3,4,3,5,89,1,2,3,4]
s.to_set(SortedSet)
#=> #<SortedSet: {1, 2, 3, 4, 5, 11, 12, 89}>