我创建了一个包含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/

10-09 16:38