Javaでコレクションの要素をランダムでシャッフルするには、Collectionsクラス
のshuffleメソッド
が便利です。メソッドの使い方についてまとめていきます。
shuffleメソッドとは
shuffleメソッド
とは、List
などのコレクションをシャッフルするためのメソッドです。内部で生成された乱数を使って、コレクションがシャッフルされます。
引数はシャッフルしたいコレクションの他、Randomクラス
のオブジェクトを第2引数に指定することができます。その場合はシャッフルするための乱数を指定することができます。
また、ランダムに数字を出力したい場合にも、Randomクラス
を使うことができます。こちらは数字の範囲を指定して、ランダムに出力させることができますが、数字が重複する可能性があります。
対して、shuffleメソッド
はList
で指定した数字を1つずつ使った重複しないリストを簡単に作ることができます。また、文字列等もシャッフルすることが可能です。
shuffleメソッドで数字をシャッフルする
ArrayList
を使って、1から10が格納されたコレクションを作りシャッフルしてみます。
1~10の数字がシャッフルされていることが分かります。
shuffleメソッドで文字列をシャッフルする
先ほどは数値型のリストをシャッフルしてみました。今度は文字列の配列をシャッフルしてみます。
文字列の配列がシャッフルされていることが分かります。
shuffleメソッドのシャッフルをRandomクラスを指定する
次に、Randomクラス
のオブジェクトを第2引数に指定してシャッフルしてみます。
Randomクラス
のインスタンス生成時に、引数に同じ数字を指定する(乱数を生成するのに使うseed値を同じにする)とシャッフルの結果も同じになることが分かります。
以上がshuffleメソッド
の使い方になります。なお、配列にはshuffleメソッド
が使えませんので注意してください。既に配列の中に入っている要素をシャッフルするには、一端ArrayList
に配列の中身を取り出す必要があるので注意しましょう。
以上で記事を終わりにします。
参考文献
関連記事