scalarandomcollectionssetscala-collections

How to get a random element from a Set in Scala


For any given set, for instance,

val fruits = Set("apple", "grape", "pear", "banana")

how to get a random element from fruits ?

Many Thanks.


Solution

  • convert into Vector and get random element from it

    scala> val fruits = Set("apple", "grape", "pear", "banana")
    fruits: scala.collection.immutable.Set[String] = Set(apple, grape, pear, banana)
    
    scala> import scala.util.Random
    import scala.util.Random
    
    scala> val rnd=new Random
    rnd: scala.util.Random = scala.util.Random@31a9253
    
    scala> fruits.toVector(rnd.nextInt(fruits.size))
    res8: String = apple