我正在使用以下方法创建随机数列表
val randomList = List(4) { Random.nextInt(0, 100) }
但是,这种方法行不通,因为我想避免重复
答案 0 :(得分:4)
一种方法是将Range随机排序,并根据需要提取任意数量的项目:
val randomList = (0..99).shuffled().take(4)
如果范围很大并且只需要几个数字,效率就不太高。
在这种情况下,最好像这样使用Set:
val s: MutableSet<Int> = mutableSetOf()
while (s.size < 4) { s.add((0..99).random()) }
val randomList = s.toList()
答案 1 :(得分:0)
创建:
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)
}
答案 2 :(得分:-1)
一种行方法来获取n
个不同的随机元素的列表。 Random
不受任何限制。
val list = mutableSetOf<Int>().let { while (it.size() < n) it += Random.nextInt(0, 100) }.toList()