Automatisierung der Randomisierung abhängiger Listen
Beim Umgang mit mehreren ArrayLists, die miteinander in Beziehung stehen, kann es nützlich sein, sie in solchen randomisieren zu können eine Art und Weise, wie sie ihre Korrespondenz aufrechterhalten. Im bereitgestellten Fall verfügen beispielsweise die Array-Listen „filelist“ und „imgList“ über entsprechende Elemente wie „H1.txt“ und „e1.jpg“.
Problemstellung
Angenommen zwei ArrayLists, filelist und imgList, wobei jedes Element in filelist einem Element in imgList entspricht, wie können wir die Reihenfolge der Elemente in imgList automatisch randomisieren, um sie an die Randomisierung von filelist anzupassen?
Lösung
Um sicherzustellen, dass die Randomisierung von imgList die Randomisierung von filelist widerspiegelt, müssen wir für jede Liste separate Random-Objekte verwenden, diese aber mit demselben Startwert initialisieren. Dies garantiert, dass beide Listen auf die gleiche Weise gemischt werden.
<code class="java">long seed = System.nanoTime(); Collections.shuffle(fileList, new Random(seed)); Collections.shuffle(imgList, new Random(seed));</code>
Erklärung
Die System.nanoTime()-Methode stellt einen eindeutigen Startwert bereit, der darauf basiert auf die aktuelle Zeit in Nanosekunden. Durch die Verwendung dieses Werts zur Initialisierung beider Random-Objekte stellen wir sicher, dass sie dieselbe Folge von Zufallszahlen generieren. Dies bedeutet, dass die Reihenfolge der Elemente in Dateiliste und imgList nach dem Mischvorgang identisch ist.
Mit diesem Ansatz können Sie die gewünschte zufällige Entsprechung zwischen den beiden ArrayLists erreichen, denen die Elemente in imgList folgen die gleiche zufällige Reihenfolge wie die Elemente in der Dateiliste.
Das obige ist der detaillierte Inhalt vonWie randomisiert man abhängige Array-Listen unter Beibehaltung der Korrespondenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!