Matsushita's Blog

JavaのCollectionsクラスのshuffleメソッドの実装を覗く

はじめに

リストをランダムに入れ替える方法を考える時にどのようにするのが実装するのがベストなのか疑問に思い、JavaのCollectionsに定義されているshuffleメソッドの実装を見てみる。

Collections.shuffle

上記のコードで実際にランダム化している箇所は以下の部分である。

リストの後ろの要素と乱数によって得たインデックスの要素をスワップしている。これを範囲を上手く調整しながらN回繰り返している。 とてもシンプルな実装で且つ計算量もO(N)とリーズナブルだ。