我创建了一个包含4个项目的arraylist
val myList = arrayListOf("Item1", "Item2", "Item3", "Item4")
然后我从myList打印了一个随机项目
val randomNum = Random()
val randomItem = randomNum.nextInt(myList.count())
println(myList[randomItem])
这不应该失败吗?一旦randomItem等于4?理想情况下,我要问的是randomItem从0-4返回一个整数,对吗?但是arraylist索引仅为0-3。我应该对randomItem做-1吗?我很困惑,因为程序没有引发错误。
最佳答案
请在此处查看API Random.nextInt(int bound)
public int nextInt(int绑定)
返回一个伪随机数,它从此随机数生成器的序列中提取,在0(含)和指定值(不含)之间均匀分布的int值。 nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有绑定的可能的int值均以(近似)相等的概率产生。
参数:
bound-上限(不包括)。必须是积极的。
返回值:
下一个伪随机数,此随机数生成器的序列在0(含)和有界(不含)之间均匀分布的int值
所以你的情况是0、1、2或3
关于java - 使用arraylist的Kotlin索引不会超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49324346/