使用Collections API来随机播放

101*_*101 6 java collections shuffle

我变得非常沮丧,因为我似乎无法弄清楚为什么Collections shuffling无法正常工作.

让我们说我试图改组randomizer阵列.

int[] randomizer = new int[] {200,300,212,111,6,2332}; 
Collections.shuffle(Arrays.asList(randomizer));
Run Code Online (Sandbox Code Playgroud)

由于某种原因,无论我是否调用shuffle方法,元素都保持完全相同的排序.有任何想法吗?

Chr*_*ung 18

Arrays.asList不能与基元数组一起使用.请改用:

Integer[] randomizer = new Integer[] {200,300,212,111,6,2332}; 
Collections.shuffle(Arrays.asList(randomizer));
Run Code Online (Sandbox Code Playgroud)

同样的规则适用于集合框架中的大多数类,因为您不能使用基本类型.

int[]由于可变参数方法的行为,原始代码(with )编译正常,但没有按预期工作asList:它只是创建一个单元素列表,int数组作为其唯一成员.