随机vs随机播放

Rya*_*les 1 java random arraylist

我有一个ArrayList我想从中获取随机值.为此,我想到了两个简单的方法:

方法1:用于Random生成0和大小之间的随机数ArrayList,然后使用该数字arrayList.get(x)

方法2:使用arrayList.shuffle()然后arrayList.get(0).

在随机性方面,一种方法比另一种方法更好,我知道一个人不可能是真正随机的,但我希望结果尽可能随机.

编辑:我只需要一个值 ArrayList

Jer*_*vel 9

这取决于具体情况.

改组的好处:

  • 一旦洗牌,那么只需顺序抓取
  • 没有重复的值

随机化的好处:

  • 非常适合少量的价值观
  • 可以重复值


Dav*_*d Z 5

回答你的直接问题:这些都不比另一个“更随机”。这两种方法的结果在统计上没有区别。毕竟,混洗数组的第一步是(基本上)在0N-1(其中N是数组的长度)之间选择一个数字并将该元素移动到第一个位置。

话虽如此,根据您的特定需求,有充分的理由选择其中之一。Jeroen 的回答很好地总结了这些。