Подтвердить что ты не робот

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

Например, существует массив Scala val A = Array("please", "help", "me"). Как выбрать случайный элемент из этого массива?

4b9b3361

Ответ 1

import java.util.Random
// ...
val rand = new Random(System.currentTimeMillis())
val random_index = rand.nextInt(A.length)
val result = A(random_index)

Ответ 2

import scala.util.Random

val A = Array("please", "help", "me")
Random.shuffle(A.toList).head

Ответ 3

import scala.util.Random

val A = List(1, 2, 3, 4, 5, 6)
A(Random.nextInt(A.size))

Ответ 4

Лучший ответ, не связанный с перестановкой массива, будет следующим:

import scala.util.Random

object sample {
  //gets random element from array
  def arr[T](items:Array[T]):T = {
    items(Random.nextInt(items.length))
  }
}

Это также работает в целом

Ответ 5

Мы также можем добавить некоторую безопасность с помощью монады Option (используя функцию lift и условие)

На самом деле, если вы используете эту функцию в массивах (это может быть пустым), ваш результат всегда будет Option.

Референциальная прозрачность FTW\o/

def getRandElemO[T](arr: Array[T]): Option[T] =
  if (arr.isEmpty) None
  else arr lift util.Random.nextInt(arr.length)