#list #kotlin
#Список #kotlin
Вопрос:
Я создаю список случайных чисел, используя следующий подход
val randomList = List(4) { Random.nextInt(0, 100) }
Однако этот подход не работает, поскольку я хочу избежать повторений
Ответ №1:
Один из способов — перетасовать диапазон и взять столько элементов, сколько вы хотите:
val randomList = (0..99).shuffled().take(4)
Это не так эффективно, если диапазон большой и вам нужно всего несколько чисел.
В этом случае лучше использовать набор, подобный этому:
val s: MutableSet<Int> = mutableSetOf()
while (s.size < 4) { s.add((0..99).random()) }
val randomList = s.toList()
Ответ №2:
Создать:
val list = (0 until 100).toMutableList()
val randList = mutableListOf<Int>()
for (i in 0 until 4) {
val uniqueRand = list.random()
randList.add(uniqueRand)
list.remove(uniqueRand)
}
Ответ №3:
Однострочный подход для получения списка n
различных случайных элементов. Random
никоим образом не ограничено.
val list = mutableSetOf<Int>().let { while (it.size() < n) it = Random.nextInt(0, 100) }.toList()