"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment mélanger synchrone deux arraylist associés?

Comment mélanger synchrone deux arraylist associés?

Publié le 2025-05-03
Parcourir:711

How to Shuffle Two Related ArrayLists While Maintaining Their Correspondence?

Préserver les relations tout en randomisant les listes d'arraylists

lorsque vous travaillez avec deux listes de crates connexes, il peut être essentiel de maintenir la relation entre leurs éléments après la randomisation. Cela devient particulièrement important lorsque l'ordre d'un ArrayList affecte l'autre.

Considérez le scénario décrit dans la question, où nous avons deux listes de table: FileList et Imglist, contenant chacun un nom de fichier et un nom d'image correspondant. Découvrons comment nous pouvons randomiser FileList tout en veillant à ce qu'Imglist suit le même modèle de randomisation.

Le défi

Le défi réside dans la garantie que l'ordre des éléments dans Imglist s'aligne sur l'ordre shufflé de FileList. Collection.Shuffle () est couramment utilisé pour la randomisation, mais il génère un nouvel arrangement aléatoire d'éléments, ce qui rend difficile la préservation de la relation originale.

La solution: Synchronisé Shuffling

pour résoudre ce problème, nous pouvons utiliser les collections.shuffle () deux fois avec un objet aléatoire avec un objet aléatoire initial avec le même problème. La valeur de graine garantit que les deux objets aléatoires produisent la même séquence de nombres aléatoires.

long seed = System.nanoTime();
Collections.shuffle(fileList, new Random(seed));
Collections.shuffle(imgList, new Random(seed));

En utilisant la même graine pour les deux objets aléatoires, nous nous assurons que FileList et Imglist sont mélangés dans le même ordre. Cela maintient la relation entre les éléments correspondants, ce qui leur permet d'être utilisés sans aucune divergence. "M5.txt", "h2.txt", "h1.txt"}

Par conséquent, Imglist sera automatiquement randomisé pour correspondre au nouvel ordre de FileList: imglist = {"e4.jpg", "e6.jpg", "e3,jpg", "e5.jpg", "e2 "e1.jpg".}

Cela garantit que l'image "e1.jpg" correspond toujours à "h1.txt" et ainsi de suite, ce qui facilite le travail avec les deux ArrayLists en harmonie malgré la randomisation.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3