Swift 随机选择套装<T>
Swift pick random item of Set<T>
我知道,Set
是一个无序的数据结构,但是我想知道是否可以从 Set 的条目中选择一个随机对象。这在 Swift 中是否可行?如果是,如何实现?我可以使用 Swift 1.2 Set<T>
还是必须使用 NSMutableSet
甚至 NSOrderedSet
?
集合没有随机访问迭代器,但如果您愿意为集合长度的线性时间提前付出代价,您可以这样做:
import Darwin
let set = Set("supercalifragalisticexpialidocious")
let offset = Int(arc4random_uniform(UInt32(set.count)))
let idx = advance(set.startIndex, offset)
set[idx] // a random entry from set
我知道,Set
是一个无序的数据结构,但是我想知道是否可以从 Set 的条目中选择一个随机对象。这在 Swift 中是否可行?如果是,如何实现?我可以使用 Swift 1.2 Set<T>
还是必须使用 NSMutableSet
甚至 NSOrderedSet
?
集合没有随机访问迭代器,但如果您愿意为集合长度的线性时间提前付出代价,您可以这样做:
import Darwin
let set = Set("supercalifragalisticexpialidocious")
let offset = Int(arc4random_uniform(UInt32(set.count)))
let idx = advance(set.startIndex, offset)
set[idx] // a random entry from set