前提・実現したいこと
JavaのArrayListを用いて、1から5の数字をランダムに並び替えたものをさらにArrayListに追加したいと考えています。
また、あとで数字の幅は変更したいと考えているので、5つだけ変数を作るという処理は考えていません。
該当のコード
ArrayList<Integer> m = new ArrayList<Integer>(); ArrayList<Integer> w = new ArrayList<Integer>(); for(int i=1;i<=5;i++) { m.add(i); w.add(i); } ArrayList<ArrayList<Integer>> mp = new ArrayList<ArrayList<Integer>>(); ArrayList<ArrayList<Integer>> wp = new ArrayList<ArrayList<Integer>>(); for(int i = 1;i<=5;i++) { Collections.shuffle(m); Collections.shuffle(w); mp.add(m); wp.add(w); } System.out.println(mp);
期待される出力(例)
[[3, 4, 5, 1, 2], [5, 1, 2, 3, 4], [2, 3, 4, 5, 1], [4, 5, 1, 2, 3], [1, 2, 3, 4, 5]]]
実際の出力(例)
[[4, 1, 3, 5, 2], [4, 1, 3, 5, 2], [4, 1, 3, 5, 2], [4, 1, 3, 5, 2], [4, 1, 3, 5, 2]]
試したこと
ランダムなシード値を設定しても、なぜか最後にシャッフルしたArrayListの値に変わってしまいます。
補足情報(FW/ツールのバージョンなど)
Java 1.8.0_152
Ecclipse
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/27 08:57
2018/01/27 09:09
2018/01/27 09:41