"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo barajar sincrónicamente dos ArrayList asociadas?

¿Cómo barajar sincrónicamente dos ArrayList asociadas?

Publicado el 2025-05-03
Navegar:692

How to Shuffle Two Related ArrayLists While Maintaining Their Correspondence?

preservando las relaciones Al aleatorizar las muelle de matrices

cuando se trabaja con dos listas de matrices relacionadas, puede ser esencial mantener la relación entre sus elementos después de la aleatorización. Esto se vuelve particularmente importante cuando la orden de una lista de matrices afecta a la otra.

Considere el escenario descrito en la pregunta, donde tenemos dos listas de matrices: Filelist e imglist, cada uno que contiene un nombre de archivo correspondiente y nombre de imagen. Averigamos cómo podemos aleatorizar Filelist mientras aseguramos que imglist siga el mismo patrón de aleatorización.

el desafío

El desafío radica en garantizar que el orden de los elementos en imglist se alinee con el orden de filones de filones. CollectS.shuffle () se usa comúnmente para la aleatorización, pero genera una nueva disposición aleatoria de elementos, lo que dificulta la preservación de la relación original.

la solución: sincronizado bareando

para resolver este problema, podemos usar colección.shufflefle () Twughling, cada vez con un objeto aleatorio con el objeto aleatorio inicializado. Inicializado. Inicializado. Inicializado. Inicializado. Inicializado. Inicializado. Inicializado. El valor de la semilla garantiza que ambos objetos aleatorios producen la misma secuencia de números aleatorios.

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

usando la misma semilla para ambos objetos aleatorios, nos aseguramos de que Filelist e imglist se barajen en el mismo orden. Esto mantiene la relación entre los elementos correspondientes, permitiéndoles usarse juntos sin ninguna discrepancia.

Ejemplo de salida

Después de aplicar la solución, el fileLista resultante podría parecer así:

filelist = "m4.txt", "M6.txt", ",", "h3.txt", "H3.txt", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",". "M5.txt", "h2.txt", "h1.txt"}
fileList = {"M4.txt", "M6.txt", "H3.txt", "M5.txt", "H2.txt", "H1.txt"}
en consecuencia, imglist se alejará automáticamente para que coincida con el nuevo orden de fileList:

imglist = {"e4.jpg", "e6.jpg", "e3.jpg", "e5.jpg", "," "e2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" "," "," "," "," "", "" "," "" "e1.jpg".}

imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5.jpg", "e2.jpg", "e1.jpg".}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3