ホームページ  >  に質問  >  本文

java - Collections.shuffle

ringa_leeringa_lee2761日前648

全員に返信(3)返信します

  • 大家讲道理

    大家讲道理2017-04-18 10:09:02

    リーリー

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:09:02

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

    リーリー

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

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

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:09:02

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

    返事
    0
  • キャンセル返事