在Java中随机化一组int的最快方法

时间:2012-11-29 12:37:07

标签: java arrays random

是否可以从一个数组中选择一个随机元素,并在没有ArrayLists / Collections等的帮助下将其移动到另一个数组(除非您可以在数组上使用shuffle)?并确保不再选择元素? 我想把它设置为null似乎你不能删除它但我不确定。

基本上我希望myArray得到洗牌或随机化,我认为最好的方法是将它们从一个随机顺序中拉出来并将它们添加到一个新的...

3 个答案:

答案 0 :(得分:7)

您也可以使用Collections.shuffle(List)来重新排列数组:

Integer[] data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Collections.shuffle(Arrays.asList(data));

System.out.println(Arrays.toString(data));

将打印例如[6,2,4,5,10,3,1,8,9,7]。

Arrays.asList不会创建新列表,而是创建数组的List接口包装器,以便对列表的更改也传播到数组。

答案 1 :(得分:3)

您可以使用Collections.shuffle()方法对列表进行随机播放。

答案 2 :(得分:2)

- 您可以使用Collection之类的List,然后使用shuffle()方法。

- 或者如果您想坚持使用数组,那么首先需要将数组转换为List,然后使用shuffle()方法。

<强>例如

Integer[] arr = new Integer[10];

List<Integer> i = new ArrayList<Integer>(Arrays.asList());

Collections.shuffle(i);