ruby - как создать SortedSet из Set? - PullRequest
1 голос
/ 23 мая 2019

Если у меня есть массив, я могу создать из него набор (уникальные значения) с помощью

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 ]

5 голосов
/ 23 мая 2019

Вы также можете передать установленный класс, как описано в документации #to_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}>
5 голосов
/ 23 мая 2019

Передать существующий набор в 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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...