Kotlin - Создать ArrayList случайных целых чисел указанной длины? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть ArrayList вот так:

var amplititudes : ArrayList<Int> = ArrayList()

Я хочу заполнить это случайными значениями.Как я могу это сделать?

Ответы [ 5 ]

0 голосов
/ 15 мая 2019

Чтобы сгенерировать случайное число указанной длины списка и между определенными пределами, используйте:

val rnds = (1..10).map { (0..130).random() }

Где (1..0) -> возврат списка из 10 элементов (0..130) -> возврат случайного числа между даннымидиапазон

0 голосов
/ 10 января 2019

С момента выпуска Kotlin 1.3 нет необходимости использовать Java java.util.Random, который ограничивал бы ваш код JVM.Вместо этого была введена kotlin.random.Random, которая доступна на всех платформах, поддерживающих Kotlin.

var amplititudes  = IntArray(10) { Random.nextInt() }.asList()

Поскольку вы работаете с объектом-компаньоном, вам не нужно беспокоиться о мгновенном Random объект каждой итерации (как это было с Java, который вы должны были бы поместить в переменную).

0 голосов
/ 29 мая 2018

Исходя из ответа @ Md Johirul Islam Вы также можете использовать:

val from = 0
val to = 11
var random = Random()
var amplititudes  = IntArray(10) { random.nextInt(to - from) +  from }.asList()

. В этом решении вы можете указать желаемый диапазон значений от 0 до 10.например

0 голосов
/ 29 мая 2018

Может быть, что-то вроде этого:

val amplitudes = ThreadLocalRandom.current().let { rnd ->
    IntArray(5) { rnd.nextInt() }
}

Или это:

val amplitudes = ThreadLocalRandom.current().let { rnd ->
    (0..5).map { rnd.nextInt() }.toIntArray()
}
0 голосов
/ 29 мая 2018

Один из вариантов - использовать конструктор массива следующим образом:

var amplititudes  = IntArray(10) { Random().nextInt() }.asList()

Другая стратегия:

var amplititudes  = (1..10).map { Random().nextInt() }

РЕДАКТИРОВАТЬ

Asпредлагается в комментарии вместо создания экземпляра Random каждый раз, когда его лучше инициализировать один раз:

var ran = Random()
var amplititudes  = (1..10).map { ran.nextInt() }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...