4

ある配列からランダムな要素を選択し、ArrayLists/Collections などを使用せずに別の配列に移動することは可能ですか (配列でシャッフルを使用できない場合)? その要素が再び選択されていないことを確認しますか?null に設定することを考えましたが、削除できないようですが、わかりません。

基本的に、私myArrayはシャッフルまたはランダム化したいと考えており、ランダムな順序でそれらを1つから引き出して新しいものに追加するのが最善の方法だと考えました...

4

3 に答える 3

6

You can use Collections.shuffle(List) to shuffle an array as well:

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

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

will print e.g. [6, 2, 4, 5, 10, 3, 1, 8, 9, 7].

Arrays.asList will not create a new list, but a List interface wrapper for the array, so that changes to the list are propagated to the array as well.

于 2012-11-29T12:42:45.310 に答える
3

Collections.shuffle()メソッドを使用してリストをシャッフルできます。

于 2012-11-29T12:39:28.787 に答える
2

- You can use a Collection like List and then use shuffle() method.

- Or if you want to stick with the Array then first you need to convert the array into List and then use shuffle() method.

Eg:

Integer[] arr = new Integer[10];

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

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