Collections.shuffle()リストを乱す
Java.util.Collectionsクラスには、次のような静的shuffle()メソッドがあります.
1)static void shuffle(List>list)はデフォルトのランダムソースを使用してリストを置換し、すべての置換が発生する可能性はほぼ等しい.
2)static void shuffle(List>list,Random rand)は,指定されたランダムソースを用いて指定リストを置換し,すべての置換が発生する可能性はほぼ等しく,ランダムソースが公平であると仮定した.
注意:整数配列が与えられた場合、Arraysを使用します.asList()メソッドは、2つの方法で1つの集合クラスに変換されます.
1)リストリスト=ArrayList(Arrays.asList(ia))を用い,shuffle()を用いて下位配列の順序を乱すことはない.
2)List list=Arraysを用いる.aslist(ia)を使用し、shuffle()で乱すと、下位配列の順序が変わります.
参考サイト:https://blog.csdn.net/u011514810/article/details/51218784
1)static void shuffle(List>list)はデフォルトのランダムソースを使用してリストを置換し、すべての置換が発生する可能性はほぼ等しい.
2)static void shuffle(List>list,Random rand)は,指定されたランダムソースを用いて指定リストを置換し,すべての置換が発生する可能性はほぼ等しく,ランダムソースが公平であると仮定した.
注意:整数配列が与えられた場合、Arraysを使用します.asList()メソッドは、2つの方法で1つの集合クラスに変換されます.
1)リストリスト=ArrayList(Arrays.asList(ia))を用い,shuffle()を用いて下位配列の順序を乱すことはない.
2)List list=Arraysを用いる.aslist(ia)を使用し、shuffle()で乱すと、下位配列の順序が変わります.
Random rand=new Random(47);
Integer[] ia={0,1,2,3,4,5,6,7,8,9};
List list=new ArrayList(Arrays.asList(ia));
System.out.println("Before shufflig: "+list);
Collections.shuffle(list,rand);
System.out.println("After shuffling: "+list);
System.out.println("array: "+Arrays.toString(ia));
List list1=Arrays.asList(ia);
System.out.println("Before shuffling: "+list1);
Collections.shuffle(list1,rand);
System.out.println("After shuffling: "+list1);
System.out.println("array: "+Arrays.toString(ia));
:
Before shufflig: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
After shuffling: [3, 5, 2, 0, 7, 6, 1, 4, 9, 8]
array: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Before shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
After shuffling: [8, 0, 5, 2, 6, 1, 4, 9, 3, 7]
array: [8, 0, 5, 2, 6, 1, 4, 9, 3, 7]
参考サイト:https://blog.csdn.net/u011514810/article/details/51218784