如果我有一个数组,我可以使用它来创建一个集合(唯一值)
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
,但不存在
答案 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}>