在 Java 中随机化整数数组的最快方法

Posted

技术标签:

【中文标题】在 Java 中随机化整数数组的最快方法【英文标题】:Quickest way to randomize an array of ints in Java 【发布时间】:2012-11-17 12:56:33 【问题描述】:

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

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

【问题讨论】:

相关:***.com/questions/3981420/collections-shuffle 【参考方案1】:

您可以使用Collections.shuffle() 方法来打乱列表。

【讨论】:

【参考方案2】:

- 你可以使用CollectionList 一样,然后使用shuffle() 方法。

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

例如:

Integer[] arr = new Integer[10];

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

Collections.shuffle(i);

【讨论】:

【参考方案3】:

您也可以使用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 接口包装器,因此对列表的更改也会传播到数组。

【讨论】:

以上是关于在 Java 中随机化整数数组的最快方法的主要内容,如果未能解决你的问题,请参考以下文章

在mysql中使用大数据集随机化结果的最快方法

第六章:随机化(续2)

随机化整数行为

使用 .NET 随机化数组的最佳方法

在javascript中生成随机整数的最快方法是啥?

如何在 C# 中的石头、纸、剪刀游戏中随机化数组中的变量? [复制]