【发布时间】:2019-12-31 11:38:16
【问题描述】:
This 代码创建随机数列表,但有时前一个索引的值会重复。我可以使用下面的代码来避免重复,但它会创建随机整数,而不是列表。所以,我需要避免列表像这样[1,1,0,5],并希望它像这样[1,0,1,5]
var previousIndex = 0
private fun getNewRandomIndex(): Int {
var newIndex = -1
while (true) {
newIndex = random.nextInt(randomValues.size)
if (previousIndex != newIndex) {
previousIndex = newIndex
break
}
}
return newIndex
}
我想为此代码使用名为 randomNumbers 的已创建列表。
var lastIndex = 0
imageView.setOnClickListener {
lastIndex = (lastIndex + 1) % randomNumbers.size
button.text = randomNumbers[lastIndex].toString()
}
已编辑:
var lastIndex = 0
val set = mutableSetOf<Int>()
while (set.size < 5) {
set.add(getNewRandomIndex())
}
set.toList()
imageView.setOnClickListener {
lastIndex = (lastIndex + 1) % set.size
button.text = set[lastIndex].toString()
}
Error: No get method providing array access
【问题讨论】:
-
您只是不想两次相同的值?使用你拥有的代码,记住最后一个值,如果下一个出现,忽略它,获取下一个随机数,直到它与输出的最后一个不同。
-
感谢您的评论,我想通过在测验前预先检查和预设值来找到解决测验应用程序延迟问题的方法(请参阅链接帖子)。
-
避免重复的一种方法是随机播放,而不是随机选择。
标签: android list kotlin random