Maison > Java > javaDidacticiel > le corps du texte

Comment randomiser deux ArrayLists contenant des éléments corrélés tout en préservant leur ordre ?

Susan Sarandon
Libérer: 2024-10-26 03:24:27
original
959 Les gens l'ont consulté

How can you randomize two ArrayLists containing correlated elements while preserving their order?

Préserver l'ordre tout en randomisant plusieurs ArrayLists corrélées dans le contenu

Introduction

Cette question aborde un scénario courant dans lequel deux ArrayLists contiennent éléments liés, mais la randomisation d'une liste devrait automatiquement randomiser l'autre dans le même ordre. Pour comprendre la solution, il est crucial d'approfondir le problème et d'explorer le concept sous-jacent de randomisation parallèle.

Comprendre le problème

Étant donné deux ArrayLists, fileList et imgList, représentant des éléments associés (par exemple des fichiers texte et leurs images correspondantes), la tâche consiste à randomiser fileList, randomisant ainsi automatiquement imgList de la même manière. Cela garantit que les éléments associés restent appariés même après la lecture aléatoire.

Solution

Le code suivant présente une solution efficace utilisant la méthode Collections.shuffle() avec deux objets Random initialisés avec la même graine :

<code class="java">long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));</code>
Copier après la connexion

Explication

  • Graine commune : L'initialisation des deux objets aléatoires avec la même graine garantit que le la séquence pseudo-aléatoire générée par chaque objet est identique. Cela garantit que les deux listes sont mélangées exactement dans le même ordre.
  • Collections séparées : En utilisant deux objets aléatoires, les ArrayLists restent distinctes et peuvent être manipulées indépendamment sans affecter l'autre.
  • Déclencheur de randomisation :Une fois que fileList est mélangé, les modifications déclenchent un mélange ultérieur dans imgList, préservant l'ordre synchronisé entre les éléments associés.

Sortie

Pour l'exemple d'entrée fourni, la sortie après randomisation sera la suivante :

  • fileList = {"M4.txt", "M6.txt", "H3. txt", "M5.txt", "H2.txt", "H1.txt">
  • imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5 .jpg", "e2.jpg", "e1.jpg">

Remarquez comment l'ordre des éléments dans imgList reflète l'ordre aléatoire de fileList, associant efficacement les éléments associés.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal