前回は乱数を取得してみましたが、今回はあらかじめ用意したリストをシャッフルしてみたいと思います。
あらかじめ値のリストが与えられているため、トランプのカードを切ったり、麻雀牌をジャラジャラしたりする場面で使えそうですね♪
Collectionsクラスを使ってリストをシャッフルするサンプル
1,2,3,4,5,6の値リストを用意。これをシャッフルします。
シャッフルの前後で、値のリストをそれぞれ標準出力します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.ArrayList; import java.util.Collections; public class ShuffleTest { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(6); System.out.println("-- 並び替え前 --"); for(Integer i : list) { System.out.println(i); } //リストをシャッフル Collections.shuffle(list); System.out.println("-- 並び替え後 --"); for(Integer i : list) { System.out.println(i); } } } |
実行結果
シャッフルの前後で、値のリストがそれぞれ標準出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | -- 並び替え前 -- 1 2 3 4 5 6 -- 並び替え後 -- 2 4 5 3 1 6 |
サンプルの解説
Collections#shuffle(List)を使うことで、リストをシャッフルすることができます。
Collections#sort(List)同様に、引数にセットしたリスト自身を並び替えてしまうので、注意しましょう。