Heim > Java > javaLernprogramm > Wie mischt man zwei verwandte Array-Listen und behält dabei ihre Korrespondenz bei?

Wie mischt man zwei verwandte Array-Listen und behält dabei ihre Korrespondenz bei?

Barbara Streisand
Freigeben: 2024-10-29 03:13:02
Original
526 Leute haben es durchsucht

How to Shuffle Two Related ArrayLists While Maintaining Their Correspondence?

Beibehalten von Beziehungen beim Randomisieren von Array-Listen

Bei der Arbeit mit zwei verwandten Array-Listen kann es wichtig sein, die Beziehung zwischen ihren Elementen nach der Randomisierung beizubehalten. Dies wird besonders wichtig, wenn sich die Reihenfolge einer ArrayList auf die andere auswirkt.

Betrachten Sie das in der Frage beschriebene Szenario, in dem wir zwei ArrayLists haben: fileList und imgList, die jeweils einen entsprechenden Dateinamen und einen Bildnamen enthalten. Lassen Sie uns herausfinden, wie wir fileList randomisieren und gleichzeitig sicherstellen können, dass imgList demselben Randomisierungsmuster folgt.

Die Herausforderung

Die Herausforderung besteht darin, sicherzustellen, dass die Reihenfolge der Elemente in imgList richtet sich nach der gemischten Reihenfolge von fileList. Collections.shuffle() wird häufig für die Randomisierung verwendet, erzeugt jedoch eine neue zufällige Anordnung von Elementen, was es schwierig macht, die ursprüngliche Beziehung beizubehalten.

Die Lösung: Synchronisiertes Shuffling

Um dieses Problem zu lösen, können wir Collections.shuffle() zweimal verwenden, jedes Mal mit einem Random-Objekt, das mit demselben Startwert initialisiert wird. Der Startwert garantiert, dass beide Random-Objekte die gleiche Folge von Zufallszahlen erzeugen.

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

Durch die Verwendung des gleichen Startwerts für beide Random-Objekte stellen wir sicher, dass fileList und imgList in derselben Reihenfolge gemischt werden. Dadurch bleibt die Beziehung zwischen den entsprechenden Elementen erhalten, sodass sie ohne Diskrepanzen zusammen verwendet werden können.

Beispielausgabe

Nach dem Anwenden der Lösung könnte die resultierende Dateiliste so aussehen dies:

fileList = {"M4.txt", "M6.txt", "H3.txt", "M5.txt", "H2.txt", "H1.txt"}
Nach dem Login kopieren

Folglich wird imgList automatisch zufällig ausgewählt, um der neuen Reihenfolge von fileList zu entsprechen:

imgList = {"e4.jpg", "e6.jpg", "e3.jpg", "e5.jpg", "e2.jpg", "e1.jpg".}
Nach dem Login kopieren

Dadurch wird sichergestellt, dass das Bild „e1.jpg“ immer noch „H1“ entspricht .txt“ und so weiter, sodass es trotz der Randomisierung einfach ist, mit den beiden ArrayLists harmonisch zu arbeiten.

Das obige ist der detaillierte Inhalt vonWie mischt man zwei verwandte Array-Listen und behält dabei ihre Korrespondenz bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage