ホームページ  >  記事  >  Java  >  順序の一貫性を維持しながら複数の ArrayList をランダム化する方法

順序の一貫性を維持しながら複数の ArrayList をランダム化する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-27 07:12:02528ブラウズ

How to Randomize Multiple ArrayLists While Maintaining Ordering Consistency?

ランダム化中に複数の ArrayList にわたる順序を維持する

単一の ArrayList をランダム化するのは簡単な作業ですが、複数の ArrayList が関連する場合に課題が発生します。相互に一貫した方法でランダム化する必要があります。これを実現するには、Collections.shuffle() の機能と共有ランダム シードを活用できます。

次のコード スニペットは、望ましい結果を達成する方法を示しています。

<code class="java">import java.util.ArrayList;
import java.util.Collections;

public class ArrayListRandomization {

    public static void main(String[] args) {
        // Initialize the ArrayLists
        String[] file = {"H1.txt", "H2.txt", "H3.txt", "M4.txt", "M5.txt", "M6.txt"};
        ArrayList<String> fileList = new ArrayList<>(Arrays.asList(file));

        String[] img = {"e1.jpg", "e2.jpg", "e3.jpg", "e4.jpg", "e5.jpg", "e6.jpg"};
        ArrayList<String> imgList = new ArrayList<>(Arrays.asList(img));

        // Generate a shared random seed
        long seed = System.nanoTime();

        // Randomize the file list
        Collections.shuffle(fileList, new Random(seed));

        // Randomize the image list using the same seed
        Collections.shuffle(imgList, new Random(seed));

        // Print the randomized ArrayLists
        System.out.println("Randomized fileList:");
        for (String s : fileList) {
            System.out.println(s);
        }

        System.out.println("Randomized imgList:");
        for (String s : imgList) {
            System.out.println(s);
        }
    }
}</code>

この例では、コード:

  • System.nanoTime() を使用して共有ランダム シードを取得します。
  • 共有シードで Collections.shuffle() を使用して、fileList をランダム化します。
  • 同じシードを使用して imgList のランダム化プロセスを繰り返します。

共有ランダム シードを使用することにより、両方の ArrayList が同じ方法でランダム化され、対応する要素間の関係が確実に維持されます。 .

以上が順序の一貫性を維持しながら複数の ArrayList をランダム化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。