Как мы можем получить случайно выбранный элемент из массива в Scala? - PullRequest
0 голосов
/ 25 марта 2020

Как найти или получить случайно выбранный элемент из массива в Scala ???

Код для получения случайного значения прост:

var rand :Int= scala.util.Random
println(rand.nextInt)

Ответы [ 3 ]

3 голосов
/ 25 марта 2020

Я могу придумать два пути.

import scala.util.Random

val anArray = ...

val randomElement = anArray(Random.nextInt(anArray.length))
val anotherElement = Random.shuffle(anArray).head

Сделай свой выбор, но будь предупрежден, что ни один из них не является безопасным, если anArray пусто.

1 голос
/ 25 марта 2020

используйте Random.nextInt. Вероятно, Random.shuffle будет стоить намного дороже.

import scala.util.Random

def randElem[T](arr:Array[T]):Option[T] = arr.length match {
  case 0 => None
  case s => Some(arr(Random.nextInt(s)))
}

println(randElem(Array("F", "U", "N"))) //Some(N)
println(randElem(Array())) //None

https://scalafiddle.io/sf/0Vl2Ssh/0

0 голосов
/ 25 марта 2020

Попробуйте это:

import java.util.Random
val rand = new Random(System.currentTimeMillis())
val myArray = Array(1,2,3,4)
val randomIndex = rand.nextInt(myArray.length)
val result = myArray(randomIndex)
println(result)
...