Maison >Java >javaDidacticiel >Comment randomiser les ArrayLists dépendantes tout en conservant la correspondance ?
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!