首頁  >  文章  >  Java  >  如何隨機化兩個包含相關元素的 ArrayList,同時保留它們的順序?

如何隨機化兩個包含相關元素的 ArrayList,同時保留它們的順序?

Susan Sarandon
Susan Sarandon原創
2024-10-26 03:24:27872瀏覽

How can you randomize two ArrayLists containing correlated elements while preserving their order?

隨機化內容中相關的多個ArrayList 時保留順序

簡介

此問題解決了兩個ArrayList包含的常見場景相關元素,但隨機化一個列表應該會自動以相同的順序隨機化另一個列表。要理解解決方案,深入研究問題並探索並行隨機化的基本概念至關重要。

理解問題

給定兩個ArrayList,fileList 和imgList,表示相關元素(例如文字檔案及其對應的圖像),任務是隨機化fileList,從而以相同的方式自動隨機化imgList。這可以確保即使在打亂後相關元素仍保持配對。

解決方案

以下程式碼展示了使用Collections.shuffle() 方法並初始化了兩個Random 物件的有效解決方案使用相同的種子:

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

說明

  • 通用種子: 使用相同的種子初始化兩個Random 物件可確保每個物件產生的偽隨機序列是相同的。這可確保兩個清單以完全相同的順序進行洗牌。
  • 單獨的集合:透過使用兩個 Random 對象,ArrayList 保持不同,並且可以獨立操作而不影響另一個。
  • 隨機化觸發器: 一旦 fileList 被打亂,變更會觸發 imgList 中的後續打亂,從而保留相關元素之間的同步順序。

輸出

對於提供的樣本輸入,隨機化後的輸出將如下:

  • fileList = {"M4 .txt", "M6.txt", "H3. txt", "M5.txt", "H2.txt", "H1.txt"}
  • imgList = {"e4.jpg", " e6.jpg", "e3.jpg", "e5 .jpg", "e2.jpg", "e1.jpg"}

注意imgList 中元素的順序如何鏡像fileList 的隨機順序,從而有效地將相關元素配對。

以上是如何隨機化兩個包含相關元素的 ArrayList,同時保留它們的順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn