Maison  >  Article  >  Java  >  Comment randomiser plusieurs ArrayLists tout en maintenant la cohérence de l'ordre ?

Comment randomiser plusieurs ArrayLists tout en maintenant la cohérence de l'ordre ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 07:12:02528parcourir

How to Randomize Multiple ArrayLists While Maintaining Ordering Consistency?

Maintenir l'ordre sur plusieurs ArrayLists pendant la randomisation

La randomisation d'une seule ArrayList est une tâche simple, mais le défi se pose lorsque plusieurs ArrayLists, liées à les uns les autres, doivent être randomisés de manière cohérente. Pour y parvenir, nous pouvons exploiter la puissance de Collections.shuffle() et une graine aléatoire partagée.

L'extrait de code suivant montre comment obtenir le résultat souhaité :

<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>

Dans ce code :

  • Nous obtenons une graine aléatoire partagée en utilisant System.nanoTime().
  • Nous utilisons Collections.shuffle() avec la graine partagée pour randomiser la liste de fichiers.
  • Nous répétons le processus de randomisation pour l'imgList en utilisant la même graine.

En utilisant une graine aléatoire partagée, les deux ArrayList sont randomisées de la même manière, garantissant que la relation entre les éléments correspondants est maintenue .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn