Java には、コレクションやその他のデータ型に対してさまざまな操作を実行するための組み込み関数が多数あり、その 1 つがシャッフルです。シャッフル関数は、Python など他の多くの言語でも利用できます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
シャッフルメソッドの宣言:
public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)
パラメータ:
戻り値:
以下の例では、いくつかのアルファベットを含む配列からリストを作成し、shuffle メソッドを使用して配列をシャッフルします。実行するたびに、異なるシャッフルされたリストが得られます。
コード:
import java.util.*; public class CollectionsShuffleExampleWithoutRandom { public static void main(String[] args) { List<String> list = Arrays.asList("R", "A", "H", "U", "L"); System.out.println("Before Shuffle : "+list); Collections.shuffle(list); System.out.println("After shuffle : "+list); } }
出力:
以下の例では、整数のリンクされたリストを作成し、それにいくつかの整数を追加します。ただし、ここでは、ランダム性のソースとなる Random 関数である別の引数を渡しました。次に、シード値 5 の Random 関数を渡します。これは別のフレーバーであり、ランダム性を備えたシャッフル関数を使用する方法とも言えます。
コード:
import java.util.*; public class CollectionsShuffleWithRandom { public static void main(String[] args) { //Create linked list object LinkedList<Integer> list = new LinkedList<Integer>(); //Add values list.add(90); list.add(100); list.add(1); list.add(10); list.add(20); System.out.println("Before Shuffle = "+list); //Random() to shuffle the given list. Collections.shuffle(list, new Random()); System.out.println("Shuffled with Random() = "+list); //Random(5) to shuffle the given list. Collections.shuffle(list, new Random(5)); System.out.println("Shuffled with Random(5) = "+list); } }
出力:
シャッフルをさらに制御したい場合は、ランダムな方法でリストをシャッフルする独自のメソッドと、リストをシャッフルする別のアプローチを作成できます。この方法はより柔軟で、あらゆるアプリケーションに簡単に適合できます。 Java の組み込みメソッド内でシャッフルがどのように動作するかを実際に理解できます。
入力: int 配列
出力: シャッフルされた配列(ランダムな順序)
例:
public static int[] ShuffleArray(int[] array){ Random rand = new Random(); // Random value generator for (int i=0; i<array.length; i++) { int randomIndex = rand.nextInt(array.length); int temp = array[i]; array[i] = array[randomIndex]; array[randomIndex] = temp; } return array; }
上記の関数では、配列整数を渡すだけで、シャッフルされた配列が返されます。関数内では、配列がその長さになるまで反復され、乱数が生成されていることがわかります。この乱数は配列インデックスとして扱われ、別の配列と交換されます。これは、配列内で要素が交換される方法です。結果の配列はスワップされた配列になります。
上記の関数から、値のリストが送信され、配列内の要素を反復するたびに乱数が生成されるシャッフル関数の基本概念を得ることができます。この要素は、ランダム関数からランダムに生成されたインデックスを使用して、同じリスト内の別の要素と交換されます。
例外:
以下のシャッフル機能が一部のアプリケーションで使用される状況は数多くあります:
上記の記事では、シャッフルの仕組みと使い方を理解しました。ランダム パラメーターを使用してシャッフル関数を使用する場合と、ランダム パラメーターを使用しない場合の複数の使用例が考えられます。また、一部のアプリケーションでは、Java の Random 関数を使用して独自のシャッフル関数を作成できる、別の柔軟な実装が必要になる場合があります。
以上がJavaのShuffle()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。