4

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

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

4

3 回答 3

6

您也可以使用Collections.shuffle(List)shuffle 数组:

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

于 2012-11-29T12:42:45.310 回答
3

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

于 2012-11-29T12:39:28.787 回答
2

-您可以使用点CollectionList然后使用的shuffle()方法。

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

例如:

Integer[] arr = new Integer[10];

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

Collections.shuffle(i);
于 2012-11-29T12:43:42.987 回答