Maison  >  Article  >  Java  >  Comment randomiser les ArrayLists dépendantes tout en conservant la correspondance ?

Comment randomiser les ArrayLists dépendantes tout en conservant la correspondance ?

DDD
DDDoriginal
2024-10-27 11:14:30783parcourir

How to Randomize Dependent ArrayLists While Maintaining Correspondence?

Automatisation de la randomisation des listes dépendantes

Lorsque vous traitez plusieurs ArrayLists liées, il peut être utile de pouvoir les randomiser de telle manière une manière qu'ils maintiennent leur correspondance. Par exemple, dans le cas fourni, les filelist et imgList ArrayLists ont des éléments correspondants, tels que "H1.txt" et "e1.jpg".

Énoncé du problème

Étant donné deux ArrayLists, filelist et imgList, où chaque élément de filelist correspond à un élément de imgList, comment pouvons-nous automatiquement randomiser l'ordre des éléments dans imgList pour correspondre à la randomisation de filelist ?

Solution

Pour garantir que la randomisation de imgList reflète la randomisation de filelist, nous devons utiliser des objets Random séparés pour chaque liste mais les initialiser avec la même graine. Cela garantit que les deux listes seront mélangées de la même manière.

<code class="java">long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));</code>

Explication

La méthode System.nanoTime() fournit une valeur de départ unique basée sur sur l'heure actuelle en nanosecondes. En utilisant cette valeur pour initialiser les deux objets Random, nous nous assurons qu'ils génèrent la même séquence de nombres aléatoires. Cela signifie que l'ordre des éléments dans filelist et imgList sera identique après le processus de brassage.

En utilisant cette approche, vous pouvez obtenir la correspondance aléatoire souhaitée entre les deux ArrayList, où les éléments de imgList suivront le même ordre aléatoire que les éléments de la liste de fichiers.

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