依存リストのランダム化の自動化
関連する複数の ArrayList を扱う場合、次のような方法でそれらをランダム化できると便利です。彼らが通信を維持する方法。たとえば、上記のケースでは、filelist と imgList の ArrayList には、「H1.txt」や「e1.jpg」などの対応する要素があります。
問題ステートメント
filelist と imgList という 2 つの ArrayList があり、filelist の各要素が imgList の要素に対応している場合、filelist のランダム化と一致するように imgList の要素の順序を自動的にランダム化するにはどうすればよいですか?
解決策
imgList のランダム化が filelist のランダム化を反映するようにするには、リストごとに別々の Random オブジェクトを使用し、それらを同じシードで初期化する必要があります。これにより、両方のリストが同じ方法でシャッフルされることが保証されます。
<code class="java">long seed = System.nanoTime(); Collections.shuffle(fileList, new Random(seed)); Collections.shuffle(imgList, new Random(seed));</code>
説明
System.nanoTime() メソッドは、以下に基づく一意のシード値を提供します。ナノ秒単位の現在時刻。この値を使用して両方の Random オブジェクトを初期化することで、同じ乱数シーケンスが生成されるようになります。これは、シャッフル プロセス後、filelist と imgList の両方の要素の順序が同一になることを意味します。
このアプローチを利用すると、2 つの ArrayList 間で目的のランダムな対応を実現でき、imgList の要素がそれに続きます。 filelist 内の要素と同じランダムな順序。
以上が対応関係を維持しながら依存する ArrayList をランダム化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。