java - Collections.shuffle
ringa_lee
ringa_lee 2017-04-18 10:07:02
0
3
605
ringa_lee
ringa_lee

ringa_lee

全員に返信(3)
大家讲道理

リーリー

shuffle はリストの順序をスクランブルし、Random を使用してインデックス (乱数) を生成し、i-1 の要素をランダムなインデックスと交換します。 collection.size() 回ループします。

いいねを押す +0
洪涛

この種の問題については、ソース コードを見てください。

リーリー

上記は JDK のソース コードであり、コア メソッドはこの shuffle ですが、いくつかのコメントが削除されています。

まずセット内の要素の数を取得します。それが 5 未満であるか、RandomAccess インターフェイスを実装している場合は、再度ループし、セット内の 2 つの隣接する要素の位置をランダムに交換します。RandomAccess はマークです。インターフェイスが実装されている場合、このインターフェイスがあるということは、配列と同様に高速なランダム アクセス操作をサポートすることを意味します。

5 つ以上の要素があり、RandomAccess インターフェイスが実装されていない場合は、配列に変換され、さらにループして、セット内の 2 つの隣接する要素の位置をランダムに交換します。 、そして最後に配列を元の listMedium に戻します。

いいねを押す +0
大家讲道理

これは、ほとんどのコレクションの「近似的」ランダムシャッフルです。原理は非常に単純で、乱数ジェネレーターに基づいており、コレクションの要素の順序とランダムに相互作用します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!